Hallo,
ich habe ein Projekt welches einen ATTiny816 involviert. Ich habe das makefile soweit aufgesetzt und kann jetzt losprogrammieren.
Ich wollte mich jetzt darum kümmern, dass die Systemclock auf 10KHz eingestellt wird. Im Datenblatt steht nämlich 10KHz bei 3,3v. Zum flashen nutze ich eine Microchip IDE mit Atmel ICE programmer, darin ist die FUSE auf 20MHz konfiguriert ist, ich könnte noch 16KHz auswählen aber nichts weiter. Ich habe sehr schnell festgestellt, dass der Controller sehr langsam ist und habe dann versuchsweise mal die untenstehende Main programmiert, umzusehen wie schnell die Clock tatsächlich ist.
Ich setze einen Pin high mache 200 nops (1 Takt Zyklus pro nop) und es dauert 240 us. Demnach läuft meine Systemclock mit 0,8 MHZ. Das ist ganzschön wenig. uint32_t variablen werden unerträglich lange verarbeitet.
int main(void) {
gpio_init(PER_PORT_A_DIR, PER_PORT_B_DIR, PER_PORT_C_DIR);
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
}
Ich bin jetzt absolut ratlos wie ich die korrekte Clock setze. Über die IDE kann ich wie gesagt zwischen 20MHz und 16MHz wählen, die High Phase verändert sich dann auch, also funktioniert das, aber es ist immernoch viel zu langsam.
Die Clockregister händisch zu schreiben ändert auch nichts. CLKCTRL.MCLKCTRLA = 0x00u;
1 |
|
2 |
|

