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."
?
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 Crifodo dne st červen 19 2019, 14:52, celkově upraveno 1 krát.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: po červen 17 2019, 10:58 Předmět:
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[?]
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: po červen 17 2019, 16:37 Předmět:
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[?]
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.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: po červen 17 2019, 17:32 Předmět:
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[?]
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.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: po červen 17 2019, 17:45 Předmět:
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íš. _________________ 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[?]
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.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: po červen 17 2019, 18:57 Předmět:
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[?]
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2, 3Další
Strana 2 z 3
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.