Ahoj, mam dotaz, jestli lze softwarove, po zapnuti napajeni resetovat procesor. Obcas mi totiz naskoci do jineho stavu nez by mel byt:-(
Jde ti čistě o reset po startu, nebo “kdykoli”?
Předpokládám, že ani nemáš reset pin zapojen (procesor má POR a interní odpor udržující reset neaktivní).
Pokud jde o start, můžeš si zapnout ve fuses BOD. POR totiž resetuje mcu jen do určitého minimálního napětí. BOD ho udrží v resetu déle (podle toho, jak ho nastavíš).
Jesli chceš resetovat kdykoli, hodí se WDT. Pozor však na to, že jakmile WDT aktivuješ aby sis mcu resetoval, zůstane aktivní i po resetu.
V čem konkrétně spočívá ten “jiný” stav?
Jde mi ciste jen o reset po zapnuti napajeni. Jiny stav spociva v tom, ze se mi zarizeni zapne. Jakoby ma zrejme na jednom pinu nulu misto jednicky (stiskle tlacitko). Reset nemám zapojen, mam hotový plosnak, prechazim z 89LP2052 tak jsem se chtel zeptat jestli to nejde resit jinak, kdyz lze pin resetu pouzit i jako pin portu A.
Procesor vidí těsně po startu na některém pinu neočekávanou hodnotu?
Zkus tedy zapnout pomocí fuses onen BOD (brown out detector) na nejvyšší rozhodovací úroveň použitelnou pro tvé zapojení. Kdyby to nestačilo, můžeš na začátek programu zkusit přidat pár ms zpoždění (_delay_ms(20); ).
Díky moc za radu:-) Vyzkousim to:-)
Funguje to paradne:-) Moc diky.
Vpodstatě jsi jen vyléčil příznak (čtení nesprávné hodnoty), ale chtělo by to se juknout na příčinu(pomalý náběh napětí na vstupu), jesli se to nemůže později se změnou teploty, zestárnutím součástek a jinými vlivy opět vrátit.
Pokud víš, že potřebná doba(ať vytvořená BODem a rychlostí náběhu napájení nebo přes delay) nemůže z podstaty problému přesáhnout určitou hodnotu, pak jsi vpohodě.