Hallo!
Ich nutze den CodeVisionAVR Compiler und debugge dann im neuesten AVR
Studio. µC ist ein ATtiny44.
Beim Debuggen habe ich folgendes Problem (Code aufs wesentliche
gekürzt):
1 | eeprom unsigned char table[64] =
|
2 | { Wert0,....Wert63 }; //64 Werte zu Verarbeitung des ADC Wertes
|
3 |
|
4 | unsigned char read_adc(void)
|
5 | {
|
6 | [...] //AD-Wandlung
|
7 |
|
8 | adc = ADCH;
|
9 | adc = table[adc/4];
|
10 |
|
11 | }
|
Die AD-Wandlung funktioniert super, der adc Wert wird in der Watch
gescheit angezeigt. Steppe ich nun einen Schritt weiter wird adc aber
immer zu 0xFF, ganz egal welcher Wert bei der AD-Wandlung herausgekommen
ist.
Eigentlich müsste aber doch der Wert der an der Array-Stelle hinterlegt
ist angezeigt werden.
Warum ist das so ? g
Könnte mir vorstellen, dass die EEPROM Tabelle nicht berücksichtigt
wird?
Oder falsches Zusammenspiel von Codevision und AVR Studio
(unwahrscheinlich).
Der Code funktioniert übrigens wenn Debugwire nicht aktiviert ist.
Hardwarefehler schließe ich vorsichtig aus. Nach Masse ist kein
Kondensator, nur ein 7kOhm Widerstand nach Vcc (ich weiss, sollten 10
sein aber es tut..)
Vielen Dank für eure Mühen!