Anfängerin -> Erster Programmversuch funktioniert nicht

Gast #1147527
Lesenswert?
• ▲
▼
Hallo Experten!

Habe gerade mein erstes Programm mit einem MEGA32L zu Testzwecken 
geschrieben. Leider funktioniert es nicht! An Port A.0 liegt an 
PWM-Signal an. Dieses soll zu Port A.7 "Durchgeschliffen" werden.
Hier der Programmausschnitt(COdeVisionAVR):
1
// Input/Output Ports initialization
2
// Port A initialization
3
// Func7=Out Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
4
// State7=0 State6=T State5=T State4=T State3=T State2=T State1=T State0=P 
5
PORTA=0x01;
6
DDRA=0x80;
7

8
...
9

10
while (1)
11
      {
12
      // Place your code here  
13
      if(PORTA.0==0){ 
14
        PORTA.7=1; }
15
      else {
16
        PORTA.7=1;
17
        }  
18
...

Port A.7 gibt aber hat aber dauerhaft das den Zustand high. An A.0 liegt 
ein PWM-Signal mit 200Hz.

Jemand eine Idee warum das nicht funktioniert?

Grüßle
#1147538
Lesenswert?
• ▲
▼
Koennte es sein, dass die Schleife einfach zu langsam ist? Ich hab' 
keinen AVR-Compiler (arbeite immer mit Microchip-uCs), aber ich denke 
die Schleife sind so ca. 20 Assemblerbefehle. Bei 4 MHz Taktrate 
(welcher Taktrate verwendest Du wirklich?) und 1 Befehl pro Takt ist die 
Schleifenfrequenz so 200 kHz. Kann also sein, dass der uC immer gerade 
dann den Zustand des Eingangspins ueberprueft, wenn er "high" ist.

Zum Testen am besten einfach einmal ein statisches Signal von einem 
Schalter an den Eingang anlegen (1 bzw. 0), oder mit einem an den 
Eingang angschlossenen Draht abwechselnd GND und VCC beruehren und 
sschauen, ob der Ausgang folgt. Wenn das geht, dann mal ein langsameres 
PWM-Signal einschleifen (z.B. 1 kHz).

Wolfgang

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren