Restart programu

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
masar
Příspěvky: 12295
Registrován: 03 pro 2005, 01:00

#16 Příspěvek od masar »

A jak si pak mám vysvětlit:
"The I-bit is cleared by hardware after an interrupt has occurred, and is set by the RETI instruction to enable subsequent interrupts. The I-bit can also be set and cleared by the application with the SEI and CLI instructions, as described in the instruction set reference."
? :wink:

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#17 Příspěvek od fero_b »

AVR seria nema viacej urovni preruseni, pokial si spravne pametam, a obsluha prerusenia, nemoze byt prerusena dalsim prerusenim

masar
Příspěvky: 12295
Registrován: 03 pro 2005, 01:00

#18 Příspěvek od masar »

Děkuji za potvrzení. :wink:

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#19 Příspěvek od Crifodo »

U "nových" AVR pod Microchipem to je už jinak.
tazatel asi potřebuje řešit nejen zásobník a ukazatele, ale i hodnotu proměnných, aby mu program pak nepočítal nesmysly. Takže bude muset proběhnout nějakou inicializační částí, kde se vynulujou nebo definujou počáteční hodnoty, pokud není žádoucí pokračovat. To ví jen autor.
Naposledy upravil(a) Crifodo dne 19 čer 2019, 15:52, celkem upraveno 1 x.

masar
Příspěvky: 12295
Registrován: 03 pro 2005, 01:00

#20 Příspěvek od masar »

Tady ale řešíme problém tazatele:
epes píše:AT Tiny 2313, program v Céčku...
:wink:

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#21 Příspěvek od ZdenekHQ »

Ať máte nastavený priority jak chcete, tím RET(I) z přerušení vyskočíte a než se dostanete na reset nastavení, může to klidně zavolat dalších 20 přerušení.

Bohužel to používám taky a vím, jaký to umí vylomeniny.

Mimochodem, teď se objevily "embedded" klony 8051, kde RETI nechodí zrovna korektně a je lepší ty příznaky přerušení preventivně mazat.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#22 Příspěvek od termit256 »

U ceho jsi mel konktetne problem? Ja jsem ted objednal nejake jednocyklove 8051 z Ciny, tak at vim na co se mam tesit.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#23 Příspěvek od ZdenekHQ »

Já bych to napsal spíš obecně, protože něco mám z druhé ruky a nedokážu posoudit, jestli to není chyba jinde. Ale pořád poslouchám nějaký pohromy. Je potřeba si hlídat vektory přerušení, co jsou přidaný navíc, u NRF9E5 třeba přijatý paket z rádia apod.

A samozřejmě mazat příznaky UART, ty se samy nesmažou i přes RETI. To pak poslouchám, jak 16 znaků vyvolalo 22 přerušení apod.

U AT89LP51 i AT89C51RD2 jsem zaznamenal nepříjemný jev, když hardwarově generuju tón pomocí timeru T2 rovnou na výstupní pin, tak občas a náhodně jedna část periody trvá dvojnásobek délky. Nedokážu v SW najít příčinu, vlastně ten SW na to ani nemá vliv. Je tam jen ON/OFF. Působí to dost rušivě.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#24 Příspěvek od termit256 »

Tu LP radu taky obcas pouzivam. Tam se musi softwarove mazat ty priznaky preruseni kde je jeden vektor sdilen nekolika ruznymi vecmi, jako napr UART prijem/vysilani, preruseni od citace2/externi preruseni2 apod. Ma to vcelku logiku, po vymazani priznaku preruseni ktere se deje pri vstupu do obsluhy preruseni by neslo zjistit od ceho je vlastne vyvolane. Ale jestli je to pravidlem uplne u vsech si nejsem jist, radeji vzdycky mrknu do DS.

S tim hledanim obsasne se vyskytujicich anomalii to je kolikrat fakt peklo. Asi bych to zkusil napsat v asm a nechat delat MCU jen ten ton a nic jineho. To by snad melo fachcit. A pak pridavat ostatni akce co se maji delat a zjistovat tak co to vlastne zpusobuje. To externi preruseni 2 pouzivas? Ma stejny vektor jako ten citac.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#25 Příspěvek od ZdenekHQ »

Však já to na test upravil tak, aby to nic nemohlo ovlivnit. Nakonec obecně je povolenej snad jen T0, co se týká přerušení. A vzal jsem digitální osciloskop a zjistil, že ono to při přetečení sice správně načte do registrů nastavenou hodnotu (jinak by se rozhodil kmitočet), ale neudělá to CPL výstupu. Občas a náhodně.

T2 by měl běžet čistě hardwarově. A zlobí. Pravda, jsem na dorazu, takže 30MHZ krystal u 89C51RD2 a 5V.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#26 Příspěvek od termit256 »

No, to je divne. Ja mam ted na stole AT89LP51RD2 napichly na logicky analyzator, tak sem pripadne hod ten asm s tonem a muzu zkusit jestli mi to bude delat taky. Obvod je koupeny u mouseru, tak by to nemela byt cinska kopie. I kdyz i v Cine jsem je kupoval a chodily normalne.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#27 Příspěvek od ZdenekHQ »

To nejde. Jednak je to chráněný HW klíčem, jednak potřebuješ externí EEPROM, a navíc ten tón jen tak nespustíš. :D
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#28 Příspěvek od termit256 »

Ja myslel jen tu cast kodu co dela ten ton :-)
Delal jsem ted s citacem2 nejake casovani komunikace a zadne anomalie jsem nepozoroval. Slo o cyklicke vysilani neceho pres uart a pokud je mezera ve vysilani delsi jak 1ms, prejde slave do jineho rezimu takze bych poznal kdyby to blblo. Ale pouzivam AT89LP51RD2 coz je uplne jiny MCU.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#29 Příspěvek od ZdenekHQ »

Tam bude skutečně HW problém, protože mám pocit, že pár minut po zapnutí ten efekt mizí. Dělám s tím víc jak 20 let, takže takový drobnosti bych měl umět. Ovšem HW je proti.

Dokonce jsem zkusil ten tón spustit a hodit SW do smyčky. Je to tam pořád. Jak může něco ovlivnit čistě HW proces?

Ale tu část klidně pošlu, nic tam ale neuvidíš, je to jen vložení konstanty do registrů a spuštění/zastavení T2.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#30 Příspěvek od termit256 »

Mozna by stalo za zkousku poslat to do microchipu, jak se na to budou tvarit. Pry jsou celkem komunikativni.

Neni mozne ze chvilkove vypadava oscilator? (dela to s externima hodinama taky?)

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“