Foooob
18.02.2006, 16:58
Hallo
Bei mir hat sich folgendes Problem herausgestellt.
Mein Mega32 lässt sich zwar problemlos flashen und auch die Fuse-/und Lockbits lassen sich konfigurieren aber der AVR führt meinen Code nicht richtig aus oder der Code ist falsch. Sicher kann ich es nicht sagen.
Wenn ich folgenden Code aufspiele
$regfile = "m32def.dat" 'ATmega32
$crystal = 11059200 'Quarz: 11059200 Hz
Ddrc = &B00000000 'IRs als Eingänge
Ddra = &B00010000 'PIN PA4 Ausgang
Do
If Pinc.2 = 1 Then 'SHARP
Porta.4 = 1
Waitms 6000
End If
Loop
End
Dann sollte doch der Pin A4 auf High gehen sobald er vom SHARP am Pin C2 ein High-Signal bekommt. Das High-Signal bekommt er auch, aber der Pin A4 bleibt immer auf Low.
Nun geht die Sache noch weiter...ich habe den Code weiterv vereinfacht und mir folgendes angesehen
$regfile = "m32def.dat" 'ATmega32
$crystal = 11059200 'Quarz: 11059200 Hz
Ddrc = &B10000000
Portc = &B11111111
Do
Loop
End
Nach diesem Code her sollte doch NUR PC7 auf High sein?
Als ich es nachgemessen habe fiel mir aber auf, dass es PC6 auch ist.
PC7 ist sauber mit 5,0V auf High gesetzt. PC6 sollte auf null sein, bei ihm sind aber ca. 4,78V zu messen.
Was liegt hier genau vor?
Ich konnte den AVR bis jetzt wie in Code 1 zu sehen noch nicht überreden überhaupts eine Bedingung auszuführen und nichtmal schlichte Anweisungen führt er korrekt aus.
Bei mir hat sich folgendes Problem herausgestellt.
Mein Mega32 lässt sich zwar problemlos flashen und auch die Fuse-/und Lockbits lassen sich konfigurieren aber der AVR führt meinen Code nicht richtig aus oder der Code ist falsch. Sicher kann ich es nicht sagen.
Wenn ich folgenden Code aufspiele
$regfile = "m32def.dat" 'ATmega32
$crystal = 11059200 'Quarz: 11059200 Hz
Ddrc = &B00000000 'IRs als Eingänge
Ddra = &B00010000 'PIN PA4 Ausgang
Do
If Pinc.2 = 1 Then 'SHARP
Porta.4 = 1
Waitms 6000
End If
Loop
End
Dann sollte doch der Pin A4 auf High gehen sobald er vom SHARP am Pin C2 ein High-Signal bekommt. Das High-Signal bekommt er auch, aber der Pin A4 bleibt immer auf Low.
Nun geht die Sache noch weiter...ich habe den Code weiterv vereinfacht und mir folgendes angesehen
$regfile = "m32def.dat" 'ATmega32
$crystal = 11059200 'Quarz: 11059200 Hz
Ddrc = &B10000000
Portc = &B11111111
Do
Loop
End
Nach diesem Code her sollte doch NUR PC7 auf High sein?
Als ich es nachgemessen habe fiel mir aber auf, dass es PC6 auch ist.
PC7 ist sauber mit 5,0V auf High gesetzt. PC6 sollte auf null sein, bei ihm sind aber ca. 4,78V zu messen.
Was liegt hier genau vor?
Ich konnte den AVR bis jetzt wie in Code 1 zu sehen noch nicht überreden überhaupts eine Bedingung auszuführen und nichtmal schlichte Anweisungen führt er korrekt aus.