Fórum témák
» Több friss téma |
Fórum
Sziasztok!
Szeretnék eepromba adatokat írni és abból visszaolvasni. A tárolandó adatok egy függvény együtthatói, amik valós számok.A változónak amit tárolni akarok real adattípust adtam ami így néz ki: viz_bea:real;. Fordításnál figyelmeztetést kaptam mely így szól: 145 1509 Warning: Implicit typecast performed from "byte" to "real" és amire vonatkozik: eeprom_write(41,viz_bea); Segítsetek megfejteni és javítani ! A hozzászólás módosítva: Dec 21, 2013
Nekem ez így jó, szépen méri az elem feszültségét is. Köszi a segítséget.
Amikor bitenként állítod be akkor minden bitnek adj értéket, mert lehet, hogy az alapértelmezett beállítása neked nem megfelelő.
Ezek az ADCON0 bitjei:
A hozzászólás módosítva: Dec 19, 2013
Nem tudom megmagyarázni, de ha az ADCON0, ADCON1 biteket nem külön-külön állítom akkor megy:
TRISC.0:=1; ANSELC.0:=1; ADCON0:=%0010000; ADCON1:=%11010000; ennyi az inicializálás, és tökéletes. Ugyan ez volt a ADCinit eljárásban is, csak bitenként. Lehet hogy valami MikroPascal bug?
A 16LF1825-el megegyezik az adatlapja a 1829PIC-nek.
Annak ezek az ADCON1 bitjei vannak:
Az ADREF0 és ADREF1 biteket kell szerintem 1-re állítanod, hogy az RA0 és RA1 lábakon kaphassa meg a referencia feszültséget. Az ANDREF bit meg valószínűleg ki-be kapcsolja ezt az opciót. De ez csak tipp a részemről!! Itt van a bitekről rövid komment.
Ez így működik, de nekem nem jó, mert nem tudom beadni neki a belső ref. feszültséget. Az elsőnek is kellene mennie. Nincs meg valahol a adc_init és adc_read -nek a forrása?
Én is kezdő vagyok még PIC-ben. A kristályt jó helyre tetted, de tesztnél kipróbálhatod belső kristállyal is a kódot. Minimalizálva a hibalehetőségeket.
Nekem ez eddig jól működött 16F886 PIC-nél:
A leírás végén van ADC példa A hozzászólás módosítva: Dec 18, 2013
az LCD-n is nulla. 8Mhz kristály a osc1-2 lábakon. Ez jó?
Teszteld egy LCD-n a mért értékeket. UART-nál eléggé sok a hibalehetőség.
Az lesz itt a baj, hogy UART-on küldöm az adatokat, azaz a mért értéket. Eddig szoftveres UART volt, most a sajátját használom a PIC-nek. Ha bekapcsolom a BatteryMeasure eljárást, az UART szórja az adatokat folyamatosan, pedig csak másodpercenként kellene egyet.
??? A hozzászólás módosítva: Dec 17, 2013
Nem, de egyenlőre fixen 3,3V-on van, de így is nullát mér.
A hozzászólás módosítva: Dec 17, 2013
Külső ellenállással húzod fel az RC0-t?
Mert ha nem, akkor a WPUC-t is állítsd be, ahogy írtam.
Javítottam:
ADCON1.ADPREF0_bit:=0; ADCON1.ADPREF1_bit:=0; Ezt a sort pedig kivettem: OPTION_REG.WPUC0_bit:=0; ...de a helyzet változatlan.
Ez valami furcsaság: OPTION_REG.WPUC0_bit:=0;
Biztos nem jó. Ha felhúzást akarsz, akkor így kell: OPTION_REG.NOT_WPUEN_bit :=0 WPUC.WPUC0_bit:=1
Vigyázz, mert az ADPREF két bites ennél a pic-nél. Tehát az ADCON1.ADPREF0 és az ADCON1.ADPREF1 is legyen 0, ha a Vdd a ref. feszültség.
Nem biztos, hogy ez a probléma, de én már egyszer belefutottam ilyesmibe.
Sziasztok, egy 16LF1829 -en szeretném a ADC-t beállítani. A Pic RC0 lábát egyenlőre felhúztam vdd-re, így 10 biten 1024-et kellene mérni. De meg sem szólal, folyamatosan 0-át mér.
A mérés pedig így zajlik:
Tulajdonképpen majd az elem feszültségét akarom mérni, de egyenlőre egy 3,3V-ot sem tudok megmérni, a VDD mindig nulla. Ötlet? A hozzászólás módosítva: Dec 17, 2013
Hirtelen ránézve, a két program között alapvetően az LCD-hez tartozó PORTD inicializálása különbözik, a csatolt "jó" programban a PORTD így van inicializálva:
A másik, nem működő programban pedig így:
Az UART1_Init(9600);-et az LCD_Init után hívd meg, és mindkét init után tegyél egy 100 ms-os várakoztatást.
Nem HS-el, hanem belső oszcillátorral: INTOSC oscillator ...
Kipróbáltam, HS-el is ugyanaz a helyzet sajnos.
Egy 16F877-est használok a "picplc6_ds1820.mpas"-ban, a kvarc a 13-14-es lábon van.
Próbáld ki azért, hogy a belső kvarcal is ugyanezt csinálja-e.
Ha jól látom, a 16F886-nál a külső kvarcot a 9-10 (RA6-RA7) lábakra kell kötni, Te pedig a TRISA -t 255-re állítottad. Szerintem az nem jó, hogy mindkét láb bemenetre van állítva. A hozzászólás módosítva: Dec 15, 2013
szia
A mikropascalban XT külső oszcillátor van beállítva és egy 4megás külső kvarcot használok, szerintem ez jó. Kipróbáltam,amit írtál de nem segít a Delay_ms(100); sem sajnos. Az lcd világít, és a felső sorban végig tömör fekete négyzetek jelennek meg, az alsó sorban semmi. Azt nem értem hogy a "myproject"-ben meg jó.
" külső belső "
![]() Korán van még. Tehát amikor belsőt szerettem volna használni.
Nem olvastam végig az egész mpas fájlt, de ilyen nálam akkor fordult elő,amikor külső belső oszcillátort szerettem volna használni, de a mikropascal alapértelmezett, külső, HS oszcillátorával fordítottam le.
A másik ami még ilyet okozott, hogy az LCD_INIT(); után nem várakoztattam a programot egy delay_ms(100); -al, így nem volt idő az LCD inicializálásra, annak használatbavételéig.
Sziasztok!
Ebbe a hőmérős programba szeretném beleilleszteni az lcd kiiratást,de a kijelzőn semmi nem jelenik meg.Tudna segíteni valaki abban hogy hogyan kell konfigurálni az lcd kijelzőt? A kód mikropascal pro 6.0.0-ban lett megírva, és a "picplc6_ds1820.mpas"-ban nem jelenik meg semmi az lcd-n, a "MyProject.mpas"-ban jól működik a kiiratás. Köszönettel user
A legelső próbálkozásaim egyike a portb lábak beállítása volt, de úgy sem működött. Most újra kipróbáltam és ismételten nem megy proteusban.
Próbapanelon összeállítva viszont az áramkört, a portb lábak állítgatása nélkül is működik szépen. A hozzászólás módosítva: Dec 11, 2013
Azért nem megy a kvarc, mert nem állítottad be rendesen az RB6-7 portokat. Egy kvarc önmagában nem oszcillál, csak ha oszcillátor kapcsolásba van kötve. Lehet látni jól a rajzon, hogy az RB6 ebben a kapcsolásban T1OSO. Vagyis kimenet. Az RB7 meg T1OSI, bemenet. Ezek között rezeg majd a kvarc. Alapból a TRISB mindent bemenetre állít. Két bemenetttel meg nincs kvarc.
A TRISB6_bit-et 0-ra kell állítani, a TRISB7_bit-et meg 1-re. Szerintem ezután a Proteus is felismeri a szándékot és szimulálja a kvarcot. A hozzászólás módosítva: Dec 11, 2013
Szívesen, örülök hogy sikerült.
A nyákon majd a lehető legközelebb tedd a kvarcot és a 2 kondit a mikrovezérlőhöz. (a vezetékek a testhez a kondenzátoroktól is a lehető legrövidebbek legyenek a nagyobb pontosság eléréséhez)
Nagyon köszönöm a segítséget!
Sikerült pontosan beállítani.
Biztosan nem. 32768 van ráírva.
Most szereztem még 4db használtat. Estére újra tesztelem ezekkel élőben. Sajnos rendelésre 5-7 nap mire újhoz jutok. A proteust viszont továbbra sem értem. |
Bejelentkezés
Hirdetés |



