also 16 sekunden sagt mir, dass irgendwas mit der takteinstellung nicht hinhaut!
vermutlich vergehen zu viele takte zwischen
Code:
CCP = CCP_IOREG_gc;
CLK.CTRL = (CLK.CTRL & ~CLK_SCLKSEL_gm) | CLK_SCLKSEL_RC32M_gc;
versuchs mal mit ner zwischenvariable oder nem festwert, also
Code:
unsigned char temp = (CLK.CTRL & ~CLK_SCLKSEL_gm) | CLK_SCLKSEL_RC32M_gc;
CCP = CCP_IOREG_gc;
CLK.CTRL = temp;
alternativ kannste dir die bitmaske für das CLK.CTRL register direkt reinschreiben also 0bxxxxxxxx ... berichte mal über die ergebnisse
PS : laut datenblatt gibt es geschützte register wie z.B. das clocksource CLK.CTRL, die können nur beschrieben werden, wenn vorher das CCP register mit dem pasenden wert beschrieben wird und dann auch nur exakt 4 takte lang, also wenns zu lang dauert pustekuchen ^^
Lesezeichen