Hallo ich bin es mal wieder,
ich baue gerade an einem Displaycontroller via I²C mit Touchscreen
resitiv.
Mit den Graphiken komme ich schnell an die Grenze der 128kB ATMegas,
auch der ATMega2561 reicht nicht, da er nur 8kb RAM besitzt - leider :(.
Naja ich habe dann gedacht mache ich es mit einem ATXMega - das
gestaltet sich wohl schwieriger als erwartet. Das Datenblatt finde ich
nicht so toll.
Ich nutze die 256D3, also die D3 (den billigsten). Laut Datenblatt hat
er mehr als genug für mich; I²C ist bei PORTE bei TWIE angeschlossen,
die nötigen ADCs sind 7-11 auf PORTB.
So, jetzt wollte ich mal den ADC und das TWI konfigurieren - geht nicht.
ATMELStudio kennt bei dem Prozessor kein TWIE Register, auch irgendwie
nur Channel0 während des ADC. Vll. mache ich aber auch was komplett
falsch.
1 | ADCA.CH0.CTRL=ADC_CH_INPUTMODE_SINGLEENDED_gc;
|
2 | ADCA.CH0.CTRL |= ADC_CH_START_bm;
|
3 |
|
4 | while (ADCA.CH0.INTFLAGS);
|
5 |
|
6 | return (ADCA.CH0.RES);
|
Vorher habe ich ihn folgendermaßen initialisiert:
1 | ADCA.REFCTRL=ADC_REFSEL_VCC_gc;
|
2 | ADCA.CTRLB=ADC_RESOLUTION_12BIT_gc;
|
3 | ADCA.PRESCALER=ADC_PRESCALER_DIV32_gc; //Max. ADC Sampling 2MSPS
|
4 | ADCA.CTRLA=ADC_ENABLE_bm;
|
Müsste ich jetzt nicht eigentlich ADC7-ADC11 nutzen, sprich dort
CH7-CH11 eintragen? Der kennt aber nur CH0. Ich bin echt am verzweifeln,
beim TWI das gleiche. Ich wollte das gerne als Slave initialisieren. Ich
finde auch kaum etwas im Internet dazu. Beim TWI komme ich noch gar
nicht klar wie ich den als Slave initialisiere mit Interrupt.
Achso: Auslagern von den Bilddaten oder so ist nicht gewünscht, jetzt
muss es sowieso der ATXMega werden.