Fórum témák

» Több friss téma
Fórum » MSP430 mikrovezérlők
 
Témaindító: gomzito, idő: Ápr 21, 2006
Témakörök:
Lapozás: OK   69 / 139
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
LiquidCrystal.h -t letöltötted onnan ahonnan a main.c-t?

Celsiusba váltást szerintem egyszerűen a kiíratás elötti átváltással tudod megoldani. Van egy váltószám (gondolom Fahrenheitben van a hőmérő), egyszerűen azzal kell kiírás elött a változó értékét osztani/szorozni/kivonni/összeadni, azt pedig hogy utána °C -t írjon a kijelző rutinban kell átírni gondolom én. Nem néztem meg a linket.

Esetleg pontosan leírhatnád vagy tehetnél fel róla hogy milyen hibát ír.
(#) balux33 válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Mivel próbálod fordítani ?
Mert ez szerintem arra az átírt arduinora van írva ha jól gondolom.
Vagy ez a programnak csak egy része? hol van a main függvény?
(#) icserny válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Töltsd le az Energia fejlesztői környezetet, s abban hozz létre egy új "vázlatot" a cikkben talált programmal!
(#) Mybuster válasza balux33 hozzászólására (») Aug 28, 2012 /
 
IAR-al fordítottam
(#) balux33 válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Hát akkor az lesz a gond, kövesd icserny leírását!
(#) Mybuster válasza icserny hozzászólására (») Aug 28, 2012 /
 
Megprobálom letölteni felrakom és beleégetem,kíváncsi vagyok rá. Köszi.
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Akkor probáld meg Energiával fordítani. Van rá esély hogy jó lesz, én már használtam így arduinora megírt programot, a kérdés csak hogy az LCD libraryt is megcsinálták-e Energiában. Utoljára amikor néztem még azt írták hogy elég sok minden hiányzik belőle.
(#) Mybuster válasza moderboy hozzászólására (») Aug 28, 2012 /
 
Okés,rendben meglátjuk,
(#) Mybuster hozzászólása Aug 28, 2012 /
 
Működik! nagyon szépen köszi a segítségeteket. uploading complete.... nemsoká összerakom mostmár majd csak a F celsius váltást kéne orvosolni.
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Az első hsz.-ben gondolom csak elírtad, de ez nem 7seg kijelző, hanem egy 2x16-os standard HD kompatibilis LCD a képen a cikk alatt. De jó hír hogy ahogy olvasom Ő is energiával csinálta a programot, tehát működnie kell nálad is.

A másik észrevételem csak annyi lenne, hogy ugyan nem használtam még a belső hőszenzort az MSP-ben, de nem tudom milyen pontos lehet, adatlapban biztos benne van. Valószínűnek tartom hogy kalibrálni kell majd egy külső hőmérővel, a program elején vannak a kalibrációs változók és hogy hogyan kell megoldani a dolgot.

Egyébként sok sikert a dologhoz, ha kérdésed van még nyugodtan írj, megprobálunk segíteni.
(#) Mybuster válasza moderboy hozzászólására (») Aug 28, 2012 /
 
Igen,elnéztem bocs. egy kérdésem lenne itt van hogy RS p1.4 köti ok és utána írja hogy DB7 P1.4 akkor most ez hogy és pár I/O ugyanígy..?


The circuit:
=================================
LCD pin Connect to
???????????
01 ? GND GND, 10K pot
02 ? VCC +5V from next to the USB port, 10K pot
03 ? Contrast 10K Pot wiper
04 ? RS Pin8 (P1.4)
05 ? R/W GND
06 ? EN Pin9 (P1.3)
07 ? DB0 GND
08 ? DB1 GND
09 ? DB2 GND
10 ? DB3 GND
11 ? DB4 Pin10 (P1.1)
12 ? DB5 Pin11 (P1.2)
13 ? DB6 Pin12 (P1.3)
14 ? DB7 Pin13 (P1.4)
15 ? BL+ +5V
16 ? BL- GND
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Wikipédia szerint az átváltás: [°F] = [°C] ˇ 9/5 + 32

Ez a kijelző kód végében így néz ki:
a nyíllal jelölt sort kell csak belerakni (nyíl nélkül persze)

  1. ......
  2. if (FValue<=10.0)
  3. {
  4. lcd.print(?  ?);
  5. }
  6. else if (FValue<=100.0)
  7. {
  8. lcd.print(? ?);
  9. }
  10.  
  11.    -----> FValue1000=((FValue1000*9)/5)+32;
  12.  
  13. lcd.print(FValue1000);
  14. //delay(100);
  15.  
  16. ///////    end temperature display
  17. /////////////////////////////////////////////////////////////////////
  18. .........


A feliratot pedig így:

  1. .....
  2. void setup() {
  3. // set up the LCD?s number of columns and rows:
  4. lcd.begin(16, 2);
  5.     ------->   lcd.print(?  Temp C:?);
  6. lcd.setCursor(1, 1);  // set cursor location on LCD
  7. lcd.print(?Elapsed:?);
  8. ...


A " Temp C:" helyére beírhatsz szinte bármit, az lesz a számok elött. Illetve kis trükközéssel az egész kijelzés átvariálható.
(#) Mybuster válasza moderboy hozzászólására (») Aug 28, 2012 /
 
nagyon köszönöm,sokat segítettél! értem menni fog.
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Az LCD bekötést mindjárt megnézem, bár a képen se látszik sokkal jobban. Valószínű hogy valamit elgépelt, bár az sem kizárt hogy az LCD könyvtár láb spórolás miatt így van megírva, hogy 1 láb több dolgot is működtet.
(#) Mybuster válasza moderboy hozzászólására (») Aug 28, 2012 /
 
Rá tudsz nagyon zoomolni.Köszi.
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Elírtam a számolást, ez lesz a jó:
[°C] = ([°F] ? 32) ˇ 5/9

  1. -----> FValue1000=((FValue1000-32)*5)/9;


Az LCD-t meg meg kell probálni, a képen is 1.4-re megy az RS és vannak átkötések is. Ha bármit elkötsz akkor maximum nem lesz kép, de tönkre nem mehet, minden láb elviseli az 5V-ot csak zárlatot ne csinálj
(#) Mybuster válasza moderboy hozzászólására (») Aug 28, 2012 /
 
Okés köszi szépen!
(#) icserny válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
A bekötésnél az
  1. LiquidCrystal lcd(P1_4, P1_3, P1_1, P1_2, P1_6, P1_7);

sor a mérvadó. Ebből látszik, hogy a komment hibás, valójában P1.1, P1.2, P1.6, P1.7 a négy adatbit.

Mellesleg nem tudom, mire jó ez az ortopéd kiosztás...
(#) Mybuster hozzászólása Aug 28, 2012 /
 
Hát én ezt nagyon elnéztem mert kiderült valami példa progi futott benne mármint mikor égettem és most beleprobáltam az energia programmal és csak nem megy azzal se ugyanaz a propléma. Fatal Error[Pe1696]: cannot open source file "LiquidCrystal.h" C:\Users\Tamás\Documents\FONTOS!!\main.cpp 28
Bekötés meg minden más stim,de a programmal van itt a baj...
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Energia 0101E0008 -t töltötted le?

Bővebben: Link
(#) Mybuster válasza moderboy hozzászólására (») Aug 28, 2012 /
 
Igen,pontosan azt. és csupa error.
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
A soros port, IC tipusa be van állítva? Bővebben: Link
(#) szitko válasza icserny hozzászólására (») Aug 28, 2012 /
 
Idézet:
„Mellesleg nem tudom, mire jó ez az ortopéd kiosztás...”

Én az egész projektet nem értem, hogy mire jó. Hacsak arra nem, hogy mégegy fordítóprogramot megismerjen az ember?
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Megprobáltam lefordítani, nekem is csupa error az egész, probálom megtalálni mi bántja a lelkét.


szitko: Arra például jó lenne, írta is hogy ilyen első arduino projektnek készítette, hogy megismerje a dolgot. (ha jól értettem)

Mellesleg szerintem azért lehet jó az arduino fordító, mert ha kicsit érted hogy mi hogy van benne és új perifériát kell használni, akkor nem kell fél napig az adatlapot nyálazni. Egyszer kellett csinálnom egy kis állítható astabil kapcsolást, egy délutánon keresztül csak az ADC regisztereit bújtam meg probálgattam. Nem számított hogy mennyit foglal a kód meg mennyire hatékony, arduinoba ez tized annyi sor lett volna összehozni.
(#) moderboy válasza Mybuster hozzászólására (») Aug 28, 2012 /
 
Remélem itt jól működik a CODE tag, erre nekem már nem ír hibát


  1. /*The circuit:
  2.  
  3. LCD pin              Connect to
  4. 01 ? GND             GND, 10K pot
  5. 02 ? VCC             +5V from next to the USB port, 10K pot
  6. 03 ? Contrast       10K  Pot wiper
  7. 04 ? RS              Pin8 (P1.4)
  8. 05 ? R/W             GND
  9. 06 ? EN              Pin9 (P1.3)
  10. 07 ? DB0             GND
  11. 08 ? DB1             GND
  12. 09 ? DB2             GND
  13. 10 ? DB3             GND
  14. 11 ? DB4             Pin10 (P1.1)
  15. 12 ? DB5             Pin11 (P1.2)
  16. 13 ? DB6             Pin12 (P1.3)
  17. 14 ? DB7             Pin13 (P1.4)
  18. 15 ? BL+             +5V
  19. 16 ? BL-             GND
  20.  
  21. */
  22. // include the library code:
  23. #include <LiquidCrystal.h>
  24. // initialize the library with the numbers of the interface pins
  25.  LiquidCrystal lcd(P1_4, P1_3, P1_1, P1_2, P1_6, P1_7);
  26. /// Vars used in code
  27. long  sensorValue = 0;
  28. int   Temp_Gain = 1000; /// gain error (x10*-1.0)+1000 I.E.;  if error = -0.5% Temp_Gain = 1005
  29. int   Temp_Offset = 0;  /// offset error /10 I.E.; if error =  2.1 degrees Temp_Offset = 21
  30. long  FValue = 0;
  31. float FValue1000 = 0;   // using float here uses a lot of  flash mem, this can be converted to long and then some  tricks can be done on the display output, but I have lots of flash for this demo
  32. // used in elapsed_time
  33. unsigned long lastSecond = 0;
  34. int secs = 0;
  35. int mins = 0;
  36. int hours = 0;
  37. //end elapsed_time vars
  38. /// end vars
  39. void setup() {
  40. // set up the LCD?s number of columns and rows:
  41. lcd.begin(16, 2);
  42. lcd.print(  "Temp F:");
  43. lcd.setCursor(1, 1);  // set cursor location on LCD
  44. lcd.print("Elapsed:");
  45. }
  46. void loop() {
  47. measure internal temperature and display
  48. FValue1000 = 0;
  49. for (int count = 0; count<Temp_Gain; count++)
  50. {
  51. ADC10CTL1 = INCH_10 + ADC10DIV_3;         // Temp Sensor ADC10CLK/4
  52. ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE;
  53. TACCR0 = 30;                              // Delay to allow Ref to settle
  54. TACCTL0 |= CCIE;                          // Compare-mode interrupt.
  55. TACTL = TASSEL_2 | MC_1;                  // TACLK = SMCLK, Up mode.
  56. LPM0;                                     // Wait for delay.
  57. TACCTL0 &= ~CCIE;                         // Disable timer Interrupt
  58. ADC10CTL0 |= ENC + ADC10SC;               // Sampling and conversion start
  59. __bis_SR_register(CPUOFF + GIE);          // LPM0 with interrupts enabled
  60. sensorValue = ADC10MEM;                   // store the ADC10 value
  61. FValue=(((sensorValue) - 630) * 761) / 1024;   // do math on ADC10 value to convert to degrees F
  62. FValue1000 = FValue1000 + FValue;              // store value (this is how we can apply gain to the measurement)
  63. }
  64. FValue1000 = (FValue1000/Temp_Gain);    // do gain error
  65. FValue1000 = FValue1000 + Temp_Offset;  // do offset error
  66. // location formating
  67. lcd.setCursor(11, 0);  // set cursor location on LCD
  68. lcd.print(" ");      // clear area to write the temperature
  69. lcd.setCursor(11, 0);  // set cursor location on LCD
  70. if (FValue=10.0)
  71. {
  72. lcd.print("  ");
  73. }
  74. else if (FValue=100.0)
  75. {
  76. lcd.print(" ");
  77. }
  78. lcd.print(FValue1000);
  79. //delay(100);
  80. ///////    end temperature display
  81. elapsed time to display
  82. if(millis()-lastSecond>=2000) ///just in-case something took more than two seconds,  should not happen??
  83. {
  84. lastSecond += 2000;
  85. secs++;
  86. secs++;
  87. }
  88. if(millis() - lastSecond >= 1000)
  89. {
  90. lastSecond += 1000;
  91. secs++;
  92. }
  93. if(secs > 59)
  94. {
  95. secs = 0;
  96. mins++;
  97. }
  98. if(mins > 59)
  99. {
  100. mins = 0;
  101. hours++;
  102. }
  103. //place hours in correct position
  104. if( hours <= 9 )
  105. {
  106. lcd.setCursor( 12, 1 );
  107. lcd.print( hours, DEC );
  108. }
  109. else if( hours <= 99 )
  110. {
  111. lcd.setCursor( 11, 1 );
  112. lcd.print( hours, DEC );
  113. }
  114. else if( hours <= 999 )
  115. {
  116. lcd.setCursor( 10, 1 );
  117. lcd.print( hours, DEC );
  118. }
  119. else if( hours <= 9999 )
  120. {
  121. lcd.setCursor( 9, 1 );
  122. lcd.print( hours, DEC );
  123. }
  124. else if( hours <= 99999 )
  125. {
  126. lcd.setCursor( 8, 1 );
  127. lcd.print( hours, DEC );
  128. }
  129. // do minutes
  130. lcd.setCursor( 13, 1 );
  131. lcd.print( ":" );
  132. if( mins <= 9 )
  133. {
  134. lcd.print( "0" );
  135. }
  136. lcd.print( mins, DEC );
  137. ///// end of elapsed time
  138. }
(#) MadScientistHut válasza Mybuster hozzászólására (») Aug 29, 2012 /
 
Köszönjük, rámutatva a hibákat hozzászólásomat madscientisthut blog. Hoztam létre egy tömörített fájlt lehet letölteni, hogy lefordítja az Energia IDE. Csak menj a blog oldalra, és nézd fölött a kódot példa. Remélem, hogy ez is fordítja, én vagyok a fordítás google
(#) MadScientistHut válasza MadScientistHut hozzászólására (») Aug 29, 2012 /
 
Ha módosítani kódot Celsius cserélje ki:

FValue = (((sensorValue) - 630) * 761) / 1024; / / ° F

az:

FValue = (((sensorValue) - 673) * 423) / 1024 ; / / ° C
(#) MadScientistHut válasza icserny hozzászólására (») Aug 29, 2012 /
 
"Mellesleg nem tudom, mire jó ez az ortopéd kiosztás..."

Elkezdtem ezt a projektet a MSP430G2231 hogy kevesebb csapok, ezért a lábkiosztás is ebben a sorrendben
(#) Mybuster válasza MadScientistHut hozzászólására (») Aug 29, 2012 /
 
Nagyon szépen köszönöm,a sok segítséget! letöltöttem a tömörített code-ot és működik sikerült az égetés.
(#) gyengus válasza mzozo95 hozzászólására (») Aug 29, 2012 /
 
Péntektől lehet majd előrendelni.
Ha feliratkoztál itt: Bővebben: Link akkor küldenek róla emailt.
Következő: »»   69 / 139
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem