Fórum témák
» Több friss téma |
Fórum » MikroPascal kérdések
Témaindító: bozsokiandras, idő: Máj 15, 2006
Témakörök:
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:
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
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.
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
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.
Külső ellenállással húzod fel az RC0-t?
Mert ha nem, akkor a WPUC-t is állítsd be, ahogy írtam.
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
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
Teszteld egy LCD-n a mért értékeket. UART-nál eléggé sok a hibalehetőség.
az LCD-n is nulla. 8Mhz kristály a osc1-2 lábakon. Ez jó?
É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
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?
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.
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?
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
Nekem ez így jó, szépen méri az elem feszültségét is. Köszi a segítséget.
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
Az eeprom 41. byte-jába akartál tizedes törtet írni.
Vagy kerekítsd a kapott eredményt 0 és 255 közötti kerek egész számra (floor - lefelé kerekít; ceil - felfelé kerekít), vagy 2 byte-ba írd be a mentendő adatot (modf - szétbontja az egész és a tizedes részére a törtet). Természetesen utóbbi esetben is mindkét byte 0..255 közötti szám lehet. Súgóban találsz részletes leírást a kapcsolódó függvényekről. A hozzászólás módosítva: Dec 21, 2013
Köszönöm a segítséget, én is gondoltam, hogy valami ilyesmi miatt figyelmeztetett a rendszer.
Sziasztok.
Segítséget szeretnék kérni PIC16F84A programozásában. Lépésről lépésre. ASM-ben azért megyeget a dolog. Most MIKROPASCAL-ban szeretnék programot írni. MIKROPASCAL-BAN ctrl+d és ez jön ki. Lásd TXT gondolom ezekkel tudok majd dolgozni. Borland delphi7-ben már kreáltam pár szoftvert, de ez nem az . Ebben kérném a segítségeteket. PIC RA PIN -bemenet PIC RB PIN -kimenet Ide hogyan kell helyesen megadni a paramétereket. { Declarations section } begin RB0-pin bekapcsol TIMER-késleltetésnek RB0-pin kikapcsol stb end. Példaprogramok is jöhetnek, minden mennyiségben. Köszönöm. Hali A hozzászólás módosítva: Jan 27, 2014
Szia!
A mikropascal-ban van néhány példaprogram, azokból el tudsz indulni. pl: MikroPascal\Examples\Development Systems\BIGPIC5\Led Blinking
Tele a net példákkal, használati útmutatókkal, szakdolgozatokkal, és ahogyan gthomas mondta, a pascal könyvtárában is vannak demok.
Sziasztok!
Tud abban valaki segíteni, hogy hogyan kell egy 18F67j60 Pic-et rávenni hogy a külső (OSC1/OSC2) lábakra kötött 25MHz - es osc.körről vegye a belső órajelet? Átolvastam a doksit, de nekem mindig (függetlenül attól hogy mit állítok) 31 kHz-en működik: Így próbáltam: T1CON.T1RUN_bit:=0; OSCCON.3:=0; OSCCON.1:=1; OSCCON.0:=0; OSCTUNE:=$40; Köszi!
A "Project\Edit project" menüre felbukkanó ablakban állítsd az "Oscillator Selection"-t "HS oscillator"-ra, az "Oscillator Frequency"-t pedig 25.0 értékre.
A hozzászólás módosítva: Jan 29, 2014
Igen, így kezdtem, mint minden eddigi PIC-nél, amivel foglalkoztam.
A teszt program 1 másodpercig felvillant egy ledet, majd 1 másodpercig elalszik. Így kellene működnie. De ha HS vagy HS+PLL osc-t használok, és a Freq 25 MHz, kb. fél percig ég és fél percig elalszik. Nem mértem, de hosszú idő. Ha a frekvencia 0.316..... akkor működik jól, másodperces ciklussal. Innen gondolom, hogy 31 kHz-cel megy. A hozzászólás módosítva: Jan 29, 2014
Üdv.
A példaprogit beillesztettem a MikroPascal6.0-ba Hibaüzenetet kaptam. Argument is out of range "11111111"to'byte" A többi a jpg-fájlban látszik. Pálda progi, igen sok van benne ,de nem teljesen jók, Hiányosak illetve nem műnködnek. Küldjetek légyszives zip-ben, kompletten leforditott fájlokat amik üzemképesek. PIC16F84A-hoz. Hali
A TXT-ben vannak a declaration.
Gondolom én ebből kéne dolgozni. (CTRL+D gomb.)
Valóban! A % karaktert kihagytam a bináris szám elől.
Tehát helyesen: trisa := %11111111; De megadhatod 16-os számrendszerben is: trisa := $FF; A hozzászólás módosítva: Jan 30, 2014
Köszi a segitséget.
Most már üzemel a villogó. Igaz az integrált A1-változóval megszenvedtem amire elfogadta. const A1 = 30; // idözitési változó Én ezt még úgy ismertem hogy ( integer : ; ) Most már tudok tovább haladni. Üzemképes példaprogram a ZIP-ben Hali
Sziasztok. ( PIC16F887 )
Feltétel iráshoz kérnék némi segitséget. A gomb a PORTA0-ra kerül. ( RA0) RB7,RB6,RB5,RB4 led világit alapjáraton. RB3,RB2,RB1.RB0 nem világit a led alapjáraton. Amikor a gomb lenyomásra kerül (PORTA0) , akkor RB7,RB6,RB5,RB4 nem világit a led, de a RB3,RB2,RB1.RB0 világit. a többi a fájl-ban. Hali. |
Bejelentkezés
Hirdetés |