Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Nem írtam, hogy minden led világít, "mindég csak ugyan azt az 1 ledet gyújtja ki." ezt írtam. A bank inc-ben sima bankváltás van.
MEMBANK0: BCF STATUS,RP0 BCF STATUS,RP1 RETURN MEMBANK1: BSF STATUS,RP0 BCF STATUS,RP1 RETURN A szimulátorban is úgy van beállítva, hogy gnd-t ad nyomásra.
Lemaradt, az oszcillátor 4MHz csak a programban nem volt csak ilyen és ez került bele.
Átvariáltam a gombokat, most + adnak a PIC-re és így jól működik. Köszi mindenkinek a segítséget.
Nem a gombokat kellett volna átvariálni, hanem a BTFSC-ket, BTFSS-re cserlélni! A bankváltásra pedig nem szokás rutinhívásokat pazarolni, azt makrókkal szoktuk megoldani, főleg, ha nem váltunk csak két bank között. Idézet: „A szimulátorban is úgy van beállítva, hogy gnd-t ad nyomásra.” Biztosan nem működhetett úgy...
De működhetett, mert jobban átnéztem a dolgot és a gomb felengedésekor reagált. Tehát amikor magas szintet kapott.
Csak nem úgy, ahogy kellett volna, azaz nem jól működött. Ezen fogunk vitatkozni?
A többi lényeges dolog mellett meg elmész?
Eszem ágában sincs vitatkozni nálam okossabbal a témában. Csak a tényelket írtam le. A szimulátorban látszólag jól működött. Azt csinálta amit szerettem volna.
Csak hát a szimulátor az nem pic. Idézet: „Eszem ágában sincs vitatkozni nálam okossabbal a témában.” Akkor miért csinálod? Idézet: „Csak hát a szimulátor az nem pic.”
Nem csinálom, ha nem hiszed akkor töltsd be az Oshon pic szimulátorba az eredeti fájlt és próbáld ki.
Részemről lezárva. És mégegyszer köszönöm a segítséget.
Minket egyetlen dolog zavar, hogy meg se próbálod megérteni miért volt "jó" a szimulátorban! Felteszel kérdéseket, válaszolunk rá, majd elmész a lényeg mellett, mondván, megoldottad a problémát. Hát részemről is lezárva. És nincs mit. Még annyit, hogy a szimulátor tökéletesen tudja a dolgát, benned van a hiba...
Csak nem birom ki, hogy ne válaszoljak.
Nem mentem el a lényeg mellett, megértettem mi volt a baj, azt is, hogy miért működött a szimulátorban. Idézet: „Még annyit, hogy a szimulátor tökéletesen tudja a dolgát, benned van a hiba...” Én nem tudom, de ez most divat lett? A piclist-en is épp egy kezdő hatalmasat káromkodott, hogy milyen vacak ez a szimulátor és hogy semmire sem jó. Kb 8 tapasztalt róka mondta neki, hogy a szimulátor nem lehet rossz, de csak nem akarta elhinni a csóka, csak eszement módon mondta a magáét, de még a legkisebb lépésre sem volt hajlandó amit javasoltak neki változtasson a kódján - ugye mert a kódja "tökéletes volt", és, hogy a "szimulátor az bizony rossz"... Hát akik ily módon próbálnak új ismereteket elsajátítani azok eléggé rögös utakon járnak, igazándiból csak sajnálni tudom őket
Igen, és e mellett elveszi az ember kedvét, hogy a következő kérdező kódjába egyáltalán belenézzen. (még akkor is, ha a megoldást kissi lelte meg. ...annyi alaki hiba volt, hogy első körben azzal voltam elfoglalva, hogy azokat helyretegyem.)
Na mindegy, szerencsére nem mindenki ilyen...
Sziasztok! Lenne kettő darab kérdésem.
1.) Egy változónak mennyi az alapértéke? Én azt gondoltam, hogy nulla, de egy PK2 példaprogramot kibogózva megjelenítettem egy LED soron és 1-et mutat. Tehát, akkor 1? 2.) Ha a "decfsz Delay0" utasítást használom és a Delay0 értéke már 0 volt ezen sor előtt, akkor is működik az utasítás és mennyi lesz az értéke? Nem kérdeznék ilyesmit, ha a PK2 példaprogramjai nem lennének tök zűrősek számomra. Nem tudom elmondani egy ifjoncnak, hogy miként működik, mert ilyen problémák vannak. Köszi!
Ha változó alatt azt érted, amikor asm-ben valamilyen technikával (pl. cblock, vagy udata) foglalsz egy helyet a RAM-ban, akkor azt kell mondjam, annak a memóriarekesznek a tartalma reset után nem meghatározott. Azaz programkóddal kell a reset esemény lekezelésekor (gyakorlatilag a program elején) feltölteni ezeket a memóriarekeszeket.
A változók értéke általában határozatlan a bekapcsoláskor , tehát véletlenszerűen lehet 1 vagy 0, de pld. a TRIS bitek RESET folyamat hatására biztos 1 értékűek lesznek( adatlap POR érték!).
A DECFSZ csökkenti eggyel a szám értékét és utána vizsgál --> a -1 kettes komplemens kódban FFH, tehát minden bit 1 lesz. Steve
Köszi! Ezért nem volt világos nekem, mert nem gondoltam, hogy elmegy majd negatívba. Utána kell néznem ennek a kettes komplemens dolognak. Egyszer vala tanultam, de csak az egészen rövidtávú memóriámmal, ezek szerint.
Nem tudom építettél-e valaha fel-le számlálót? Ez pontosan ugyanazt csinálja: felfele számolásnál a maximális érték után újra 0 jön, illetve lefelé számolásnál a 0 után újra a maximális érték jön!
Steve
MPLAB --> FILE menü --> IMPORT --> betöltöd --> és a View--> Program Memory-ban már látod is!
A proceszor típusát előtte állítsd be! Steve
Sok visszafejto nem kepes a regiszterek szimbolikus vissza forditasara. Epp emiatt csinaltam anno az UnPIC projectet:
unPIC project home Alternativakent itt van egy magyar nyelvu site is, Szoke 'Alex' Sandor oldala aki nemregiben hozza is jarult a fejleszteshez amit kulon koszonok! PIC program visszafejtés
Hi all!
Van valami ötletetek arra, hogy ugyan az a picbasic (jó köpködjetek meg) kód egy 16F726-on (ds1820) egy istennek sem akar futni, míg egy 18F458-on simán. Már azért mentem vissza a basic-hoz, mert ott csak a proci tipust kell megadni semmi mást, és fut. Ugyan azt a portot lőttem be az lcd-nek is meg az one wire-nek is, és 16f726-oson egyszerűen nem fut. Mindegy, hogy a, vagy b port mindegy hogy melyik pin, egyszerűen már nem értem mit kéne még módosítani. Persze ha más nincs, akkor átmegyek a 18f458-ra, csak jó lenne tudni mi a fenéért nem megy. Ha kell iderakom a kódot, de szerintem valami egyszerű beállításban van a hiba. Azt is kipróbáltam, hogy a b3-ra raktam egy ledet, hogy be lehet e kapcsolni, és az megy, tehát maga port jó, ha ezek után lecserélem a ledet meg az ellenállást a ds1820 adatvezetékével akkor megint csak nagy semmi (illetve 0 jön vissza).
Üdv mindenkinek!
Most ismerkedek a C programozási nyelvvel, és szeretnék egy PIC18F-re egy LED villogtató programot írni, de sehogy sem megy. Sajnos nem vagyok tisztában az időzítésekkel. Először arra gondoltam, hogy villogtatok egy LED-et másodpercenként az RB0-án, majd időzítést tennék bele. Nem tudna valaki segíteni nekem elmagyarázni hogyan is működik ez az egész? Köszönöm! Üdv.
asm-ben megcsináltad már?
ASM-ben már megcsináltam, de most inkább a C-nyelvvel szeretnék ismerkedni, ezért gondoltam a villogtatásra!
A C nyelv egyszerűbbnek tűnik, de sajnos nem nagyon ismerem!
Csak az ilyen időzítések és feltételes elágazások miatt egyszerűbb, de ez csak első blikkre tűnik így. Az ASM is egyszerű, csak jól kell hozzá ismerni a PIC-et, meg azt a huszonvalahány parancsot.
Idézet: „Jujj-jujj-jujj!” Valami syntax errort ir erre nekem az MPLAB
Nem néztem utána, csak a '0' gyanus... Van felhúzó ellenállás, illetve be van kapcsolva a 16F726-on is?
Steve |
Bejelentkezés
Hirdetés |