[elektro-etc] attiny45 INTF0 kerdes
Papp Zoltán
zombi at c2.hu
Mon Oct 11 21:52:59 CEST 2010
2010.10.08. 10:01:40 dátumon potyo <potyo.ada at gmail.com> írta:
> 2010/10/8 Szlifka Tibor <szlifka.tibor at gmail.com>:
>> Sziasztok,
>> a tiny45 adatlapja szerint INTF0 flagbe 1 íródik bejövő megszakítás esetén.
>> Az interrupt rutin végén automatikusan törlődik. Eddig oké. A következő
>> mondat szerint alternatív megoldásként törölhető a flag, ha 1-et írunk bele.
>> Vagy korán van, vagy nem világos, de ha bejövő megszak esetén 1 lesz, akkor
>> 1-be állítva pont hogy kiváltom a megszakíts hívását, nem? Kézi törlésnél
>> nem inkább 0-ba kellene írni?
>
> Ezek azok a dolgok, amik olyan rettenet logikussá teszik az AVR-t...
Hali!
Ez egy mikrokontroller, abban nem egy memóriacelláról beszélgetünk, hanem egy vezérlő-portról.
És mint ilyen, egy címre történő írás és az olvasás két teljesen független funkciót valósíthat meg.
Jó példa pl. rögtön az AVR-eknél a soros port adat-bájtja (UDR).
Ha olvasod, a bejövő pufferben csücsülő bájtot olvasod.
Ha írod, a kimenő pufferbe teszel be egy bájtot.
Nincs külön kimenő és külön bemenő adat-bájt. Minek? Az egyiket csak írni lehet, a másikat csak olvasni és kész. Miért ne lehetne egy címen?
De nem tűnik fel, hogy két külön dolgot csinál ugyanaz a cím.
Egyébként nagyon sok periféria IC szintén így működik, hogy egy regisztert pl. olvasva "Status register", írva "Control register".
Ott viszont annyira más a két funkció írásra/olvasásra, hogy szintén nem tűnik fel a dolog.
Ennél az int flagnél meg nagyon hasonló dolgot birizgál a két irány, ezért tűnik első olvasásra zavarónak.
Üdv
--
Papp Zoltán
OneWay Electronics Kft
Hangszerviz
szkájp: oneway[aláhúzás]papp[aláhúzás]zoltan
More information about the Elektro-etc
mailing list