Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   511 / 1320
(#) Tomi111 hozzászólása Jún 23, 2009 /
 
Üdv Mindenkinek!

Lenne egy kérdésem. Írtam egy egyszerű progit 16F819-re és ezt az üzenetet kapom( Mplab6 ):
[code=c]Executing: "C:\Program Files\MPLAB IDE\MCHIP_Tools\mpasmwin.exe" /q /p16F819 "AUTOZAR.ASM" /l"AUTOZAR.lst" /e"AUTOZAR.err"
Message[302] C:\PROGRAM FILES\MPLAB IDE\AUTOZAR\AUTOZAR.ASM 54 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\PROGRAM FILES\MPLAB IDE\AUTOZAR\AUTOZAR.ASM 56 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\PROGRAM FILES\MPLAB IDE\AUTOZAR\AUTOZAR.ASM 59 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\PROGRAM FILES\MPLAB IDE\AUTOZAR\AUTOZAR.ASM 62 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\PROGRAM FILES\MPLAB IDE\AUTOZAR\AUTOZAR.ASM 63 : Register in operand not in bank 0. Ensure that bank bits are correct.

részlet a progiból:

48 konf:
49 BANKSEL PORTA ;bank 0 kiválasztása
50 CLRF PORTA ;porta törlése
51 CLRF PORTB ;portb törlése
52 BANKSEL TRISA ;bank 1 kiválasztása
53 MOVLW B'00000110' ;összes RA digit i/o
54 MOVWF ADCON1
55 MOVLW B'11111111' ;összes RA bemenet
56 MOVWF TRISA
57 CLRWDT
58 MOVLW B'10000111'
59 MOVWF OPTION_REG ;felhúzóell-ok tiltva
60 CLRF INTCON ;interruptok tiltása
61 MOVLW B'00000000'
62 MOVWF TRISB ;össze RB bemenet
63 CLRF PIE1
64 CLRF PIE2[code=c]

Mi lehet a hiba? Rosszul adom meg a bank kiválasztást?

Köszi minden segítséget.

Üdv! Tomi
(#) lidi válasza Tomi111 hozzászólására (») Jún 23, 2009 / 1
 
Ez az üzenet nem hibaüzenet, csak figyelmeztetés, hogy figyelj hogy jó bankban vagy-e mikor hozzá akarsz nyúlni az adott SFR -hez.
(#) Tomi111 válasza lidi hozzászólására (») Jún 23, 2009 /
 
Értem. Remélem jó bankban vagyok, néztem az adatlapon. Akkor is figyelmeztet?

Köszi!
(#) lidi válasza Tomi111 hozzászólására (») Jún 23, 2009 /
 
Igen akkoris. Mindíg nyavajog ha nem bank0 ban levő regiszterrel dolgozol. Ki lehet kapcsolni valahogy egyébként ha zavar.
(#) Tomi111 válasza lidi hozzászólására (») Jún 23, 2009 /
 
Nem fontos kikapcsolni. Így már tudom, hogy nem hiba.

Köszi!
(#) kissi válasza Tomi111 hozzászólására (») Jún 23, 2009 /
 
Célszerű kikapcsolni, mert hosszabb programoknál nem kell keresgélni a sok figyelmeztetés között ( ami nem ad új információt, hiszen elvileg figyelsz a BANK-ra, egyébként meg mindegy ) és így könnyebb a hibás sort(sorokat) megtalálni!

Steve
(#) borvendeg hozzászólása Jún 23, 2009 /
 
Hello!
Basicben próbálok programozni. Egy egyszerű óra programot próbáltam írni LCD kijelzővel. Minden jól is megy látszólag. De egyszercsak ujrakezdi a számlálást. Valószínűleg a FOR-NEXT utasítást használom rosszul valaki hozzáértő nézze meg legyen szíves mi a rossz.
A másik kérdésem az lenne hogy 16f887-et próbálok programozni és ennek a portjait ugy tudpom meg kell adni hogy analóg illetve digitális ki-bemenet legyen. Azt tudom hogy adjam meg hogy ki vagy be menet de azt nem hogy azt hogy mondom meg neki analóg vagy digitális legyen e?(tudom hogy adatlapban benne van de nem tudok angolul sajna)
Előre is köszi.

LCDORA.HEX
    
(#) potyo válasza borvendeg hozzászólására (») Jún 23, 2009 /
 
A hex fájlból?
(#) borvendeg válasza potyo hozzászólására (») Jún 23, 2009 /
 
Hu bocs mellényomtam forráskódot akartam. xd Abból érdekes lenne.

LCDora.bas
    
(#) MPi-c válasza borvendeg hozzászólására (») Jún 23, 2009 /
 
A program végén azt a "gotokezd" utasítást egybe kell írni? Nem így lenne jó: goto KEZD ?
Egyébként, minek a for ciklus? Nem látom, hogy az x értéke bárhol is felhasználásra kerülne...
(#) borvendeg válasza MPi-c hozzászólására (») Jún 23, 2009 /
 
Igazad van azért kellett bele a for ciklus mert mivel a goto kezd rosszul volt írva nem azt csinálta amit akartam. Viszont a másik kérdés még mindig áll.
Mégegyszer köszi.
(#) lidi hozzászólása Jún 23, 2009 /
 
Na most egyelőre megoldódni látszik a Timer counter problémám. Viszont tanulságos a történet.

Kezdődőtt az egész úgy, hogy csak egy kis programmal kipróbáltam az optokapu működését. Ha mags jelszint volt a bemeneten (kapcsolt az optotranyó) akkor a piccel bekapcsoltattam egy ledet. Ez működött is, továbbléptem volna timeres számlálásra. Csakhogy ez nem működöt ugye, csak akkor ha az oszcillátort is bekapcsoltam. A probléma pedig az volt, hogy az opto nem szolgáltatott kellően magas feszültséget (0 és 2.3V közötti négyszögjelet adott). Miután rákapcsoltam a függvénygenerátorom egyből működött a dög.
Érdekesség, hogy a digitális bemenetnek elég volt, oszcillátornak elég volt, de a counternek nem.
Igazából az a bosszantó hogy megfordult ez a fejemben, de gondoltam hogy ha a digit IO -nak jó volt, akkor jónak kell lennie. De a gyakorlatban mégsem volt elég. Kicseréltem egy ellenállást, mostmár 0 és 4V közötti jelet produkál az optkapu, így már a counter is működik. Lehet beállítani az órajelet az OSCCON -al, nem kell az FOSC bitekkel foglalkozni, T1GSS se kell hiszen a gate funckiót nem is engedélyeztem. Ezeket csak azért írom, hogy meglegyen a megoldás. Köszönöm a segítségeteket mindenképp. Még ha nem is oldották meg ezek a problémát, de rávezettek, hogy akkor máshol keressem. Két napi szerencsétlenkedés után jó hogy végre működik.
(#) potyo válasza lidi hozzászólására (») Jún 23, 2009 /
 
És mostmár akkor tudod, hogy miért volt elég a 2,3V a digitális bemenetnek, és miért nem elég a Counternek?
(#) lidi válasza potyo hozzászólására (») Jún 23, 2009 /
 
Gondolom azért, mert oszcillátor esetében bekapcsol egy ST -t is a bemenethez ha jól látom. Vagy nem tudom.
(#) icserny válasza lidi hozzászólására (») Jún 23, 2009 /
 
Az adatlap szerint a magas szinthez minimálisan kell:

- Sima IO port esetén: 0,25Vdd + 0,8 V (5V-nál 2,05 V)
- Schmitt trigger bemenet: 0,8Vdd (5V-nál 4 V)
- OSC1 XT vagy LP módban: 1,6 V

Idézet:
„Gondolom azért, mert oszcillátor esetében bekapcsol egy ST -t is a bemenethez”

Vagy átkapcsol egy másikra: "ST Buffer is low power type when using LP oscillator, or high speed type when using T1CKI."
(#) icserny válasza potyo hozzászólására (») Jún 23, 2009 /
 
Idézet:
„A hex fájlból?”

Úgy az igazi!
(#) szilva válasza lidi hozzászólására (») Jún 23, 2009 /
 
Igen, az ST bemenet miatt volt. Ellenben ha jól emlékszem, akkor 0.8Vdd a felső billenése az ST bemeneteknek, így a 4V eléggé ki van hajszálazva az 5V-os tápfeszültségnél. Lehet, érdemes lenne még azt az optocsatolós áramkört kicsit átgyúrni, hogy határozottabb jelszinteket produkáljon.
(#) MPi-c válasza borvendeg hozzászólására (») Jún 23, 2009 /
 
Idézet:
„Viszont a másik kérdés még mindig áll.”


Szótár, vagy valami webes fordító (pl.: google, webforditas.hu) és egy idő után már egyre kevesebbet kell ezeket használni.
Egyébként, számtalanszor volt ajánlva ez az oldal és a kereső használata.
(#) googa hozzászólása Jún 23, 2009 /
 
Sziasztok! Újra itt vagyok, száz év után. Lenne egy kérdésem, de ne döfjetek le egyből
Van egy cél IC-m, aminek választhatóan lehet a kimenete SPI vagy I2C. De mivel egyikhez sem konyítok még, ezért annyi lenne a kérdésem, hogy SPI-vel vagy I2C-vel foglalkozzak?
Köszönöm! goo
(#) kisszee válasza googa hozzászólására (») Jún 23, 2009 /
 
Ez esetben elég könnyű a választás, mind a két módszert el kell sajátítani, így a project után nyugodtan hátradőlhetsz, elégedetten konstatálhatod, hogy te mindkettőhöz értesz.
(#) potyo válasza googa hozzászólására (») Jún 23, 2009 /
 
Egyetértek kisszee-vel, foglalkozz mindkettővel. Ha úgy kérdezted volna, hogy egy konkrét feladathoz melyik a célszerűbb, egyszerűbb, stb., akkor lehetne egyiket vagy másikat ajánlani.
(#) googa válasza potyo hozzászólására (») Jún 23, 2009 /
 
Köszi Urak!
(#) lidi válasza szilva hozzászólására (») Jún 23, 2009 /
 
Először 4.7k húzta le, most 8.2k van, majd megnézem 10k-s ellenállással is, meg majd közelebb rakom az infra ledet is kb 3-4mm-el. Ebben a kapcsolásban szerintem max 5 - 0.6 = 4.4V ot lehet megközelíteni. Amit majd megpróbálok elérni. Próbáltam földelt emitteres módban is, de úgy nem négyszög jel jött, hanem inkább szinusz, és az amplitudó is változott összevissza.

opto.png
    
(#) trudnai válasza borvendeg hozzászólására (») Jún 23, 2009 /
 
Nem beszelni kell tudni angolul hanem megerteni a dokumentaciot. Sajnos ez egy ilyen szakma, ha az irott szakszoveget nem erted meg akkor sajnos nem fogod tudni hasznalni a PIC-et eredmenyesen. Mar emlitettem itt -- lehet tobbszor is -- hogy anno en sem tudtam nemetul megis az Apple II-hoz magyar dokumentacio hijjan nemetul olvastam az anyagot es a Basic es az Assembly-t igy tanultam meg. Szotaraztam kegyetlenul az elejen, de egy ido utan a lenyeget szotar nelkul is ki tudtam szedni.

Amugy halkan megjegyzem letezik egy 16F84-es magyarra forditott adatlap, de abban mar sajnos talaltunk olyan hibat amitol a PIC-et tonkre lehet tenni -- MCLR rossz labra volt feltuntetve...
(#) Tomi111 válasza borvendeg hozzászólására (») Jún 24, 2009 /
 
Üdv!

Köszönöm mindenkinek a segítséget. Működik a progi a 16F819-ben.

borvendeg!

Néz meg az 16F877 adatlap 112. oldalát!
Ott írja a portok beállítását. ADCON1 regiszter első 4 bitje! (011x esetén mindegyik digit I/O, ha jól látom)
A 29. oldalon pedig van egy példa is.

Javítsatok ki, ha tévedek.

Üdv! Tomi
(#) trudnai válasza Tomi111 hozzászólására (») Jún 24, 2009 /
 
Valoszinuleg nem tevedsz (nem neztem meg), azonban borvendeg 16F887-et emleget, tehat neki annak az adatlapjaban kellene kineznie a helyes beallitasokat. Mivel a ket darab architekturalisan kozel all egymashoz valoszinuleg nagyon hasonlo modszerrel fogja tudni megtenni a beallitasokat.
(#) Hp41C válasza trudnai hozzászólására (») Jún 24, 2009 /
 
Sziasztok!

Pont a kivezetések analóg tulajdonságainak és az A/D kezelésében van a két típus között lényeges eltérés.
A 16F877-ben az ADCON1, a 16F887-ben a ANSEL és ANSELH regiszterekkel lehet az analóg funkciókat állítani....
(#) borvendeg válasza Tomi111 hozzászólására (») Jún 24, 2009 /
 
Hello!
Köszi délután megpróbálom
(#) watt válasza borvendeg hozzászólására (») Jún 24, 2009 /
 
Elolvastad az ezzel kapcsolatos megelőző hozzászólásokat is? Mert ha igen, akkor felteszem a kérdést, mit is próbálsz ki Tom111 hozzászólása alapján, ha neked nem 877-ed van?
(#) lidi hozzászólása Jún 24, 2009 /
 
most nézem milyen szép kerek számot mutat az oldalszámláló
Következő: »»   511 / 1320
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