squelch napisał(a):
Ale tym poleceniem EIFR=(1<<INTF0) wpisujemy do bitów innych flag zera przez co niechcący je ustawiamy
Posłuchaj - jeszcze raz na spokojnie, w punktach
1. w jaki sposób kasujemy flagę przerwania w AVR ? - odpowiedź: wpisując jedynkę
2. co się stanie jeśli nie wiedząc o mechanizmie z pkt 1 niechcący wpiszemy 0 ? - odpowiedź: nic się nie stanie nie WYZERUJEMY flagi bo ją się zeruje jak pkt.1
dlatego jeśli napiszesz
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
to nic się nie stanie z bitami do których polecą zera (na tym polega atmelowskie zabezpieczenie zerowania flag)
Za to jeśli użyjesz tu OR !!! to będziesz miał masakrę bo pomyśl sobie jeśli jakaś flaga będzie ustawiona w innym bicie to pisząc
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
będzie to tak
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli jeśli np flaga INTF1 była ustawiona na 1 to ty ją tu (sorki za wyrażenie) zachlastasz

czyli ta jedynka też będzie zapisana co będzie oznaczało , że INTF1 też ma się skasować
teraz jaśniej ?
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]