ähm ... das ist bei dem xmega auch nicht gerade komfortabel gelöst mit den ganzen structs ... ich wünscht sie wären bei einfachen register defines geblieben, auch wenn die zahl der register enorm gestiegen ist!
ähm ... das ist bei dem xmega auch nicht gerade komfortabel gelöst mit den ganzen structs ... ich wünscht sie wären bei einfachen register defines geblieben, auch wenn die zahl der register enorm gestiegen ist!
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Hallo,
- hatte vergessen: vor diese Code-Beispiel (das bei mir auf ALVIDI-Board / Codevision läuft) steht natürlich ein CLI.
- bit setzen / löschen find ich beim Xmega recht komfortabel:
#define bit5 5
// setzen
PORTC.OUTSET=(1<<bit5);
// löschen
PORTC.OUTCLR=(1<<bit5);
mfg
Achim
Hallo,
ich habe das it dem CLI mal probiert. Funktioniert auch nicht. Was eigentlich klar ist. CLI schaltet ja die Interrupts aus. Dadurch das man aber die Register die Schreibfreigabe erteilt, werden die globalen Interrupts abgeschaltet. Für genau 4 Zyklen. Habs jetzt aber hinbekommen im Debugmodus die Register per Hand so zu ändern, dass ich ihn auf 32MHz umstellen konnte. Komme zur Zeit nur leider nicht wirklich zum basteln. Deswegen wird das noch ne Weile dauern. Halte euch aber auffen laufenden. Muss ja gehen
thx Arno
Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
Sir Isaac Newton
Hallo Leute,
habs hinbekommen. War ja klar das der Fehler bei mir liegt. Der Beispielcode geht ja bei anderen
Der Fehler war die Codeoptimierung. Die muss man unbedingt auf -0s einstellen. Sonst wird der Programmcode nicht effektiv genug umgewandelt und er braucht mehr als 4 Zyklen um das umzustellen. Deswegen ging es nicht.
http://www.avrfreaks.net/index.php?n...wtopic&t=79486
So, weiter gehts mit c lernen
cu Arno
Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
Sir Isaac Newton
Lesezeichen