mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfängerin -> Erster Programmversuch funktioniert nicht


Autor: Lisa (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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):
// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=0 State6=T State5=T State4=T State3=T State2=T State1=T State0=P 
PORTA=0x01;
DDRA=0x80;

...

while (1)
      {
      // Place your code here  
      if(PORTA.0==0){ 
        PORTA.7=1; }
      else {
        PORTA.7=1;
        }  
...

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

Autor: Lisa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soll natürlich
while (1)
      {
      // Place your code here  
      if(PORTA.0==0){ 
        PORTA.7=1; }
      else {
        PORTA.7=0;
        }  

heißen

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
if(PORTA.0==0){
        PORTA.7=0; }

?

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PORTA --> PINA !

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>      if(PORTA.0==0){

ersetze das mal durch PIN

Port dient nur zur Ausgabe , zur Eingabe musst du Pin brauchen

Gruss Helmi

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
while (1)
      {
      // Place your code here
      if(PINA.0==0){
        PORTA.7=0; }
 else {
        PORTA.7=1;
        }

?

Autor: Wolfgang M. (womai)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lisa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh Mann!Natürlich, Pin muss das heißen. Da hatte habe ich vor lauter 
Baumen den Wald nicht gesehen!
Dank an alle für die Hilfe!

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das PWM Signal beträgt 200Hz  das sollte er schon schaffen.

Autor: Wolfgang M. (womai)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ooops, ich habe kHz statt Hz gelesen! Ja, 200 Hz ist nicht besonders 
schnell.

Wolfgang

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum überhaupt diese 1:1 "Umcodierung" mit dem if .. (then) .. else ?

Warum nicht PORTA.7=PINA.0   ??

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Anfängerin -> _*Erster*_ Programmversuch funktioniert nicht
deswegen...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.