Egy kis segítség mikrokontroller programozásban?
PIC18f4550 a mikrokontroller típusa. Az USB-je miatt vettem. Az USB-PC kapcsolat nagyszerűen működik, viszont egy sima megszakításos ledvillogtatást nem tudok létrehozni. Timer1-el megszakítás nélkül poling-al összejött, de ha ugyanazt a megszakítási rutinban akarom végrehajtani, egyszer beleugrik a rutinba de nem indítja újra a számlálót...a led mindig csak felgyúl.
Hogyan tudnék rájönni a hibára? Megszakítás bitjei mind engedélyezve vannak, másképp egyszer sem ugrana bele.
Esetleg valakinek nincs egy kész megszakításos programja, amiből tanulhatnék?
Megszakítás után nem kell
1. újraprogramozni a következő megszakítást,
2. újra engedélyezni a megszakítást?
A hibát már megkaptam. Szerintem hibásan a megszakítást kezelő szubrutinból nem retfie-vel hanem return-el léptek ki ami az INTCON regiszter 7-es bitjét a GIE-t nullára állítja. Ez a bit engedélyezi az összes megszakítás vektort. Ezzel egy egészséges programban nem kell foglalkozni, max ha ki akarjuk kapcsolni a megszakításokat. Alapból is be szokott lenni kapcsolva.
Amúgy sajnos nem csak ennyi hiba van a programban...a megszakítások szinte használhatatlanok. Pl ha a timer1-et nem engedélyezem akkor a timer0 sem működik és ilyenek (csak lekérdezéssel). Az usb kommunikációt meg nem is lehet rendesen működtetni egyik megszakítással sem. Nem is jön, hogy elhiggyem, hogy a microchip kezei közül jött ki a szoftver.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!