Forum: Mikrocontroller und Digitale Elektronik At90s8535 macht nicht mit


von Sepp (Gast)


Lesenswert?

Hallo Zusammen

Ich habe eine Problem mit meinem AT90s8535.

Ich habe ein Programm geschrieben welches einige Eingänge benötigt.
Zuerst habe ich PortB für diese Eingänge benutzt. Da haben aber nur die
ersten 2 Pins richtig funktioniert.

Danach habe ichs halt mal mit PORTD versucht... nur der erste Pin
funktionierte.

Ich vermute dass das irgend einen Zusammenhang mit den alternativen
Funktionen hat, aber ehrlich gesagt habe ich keine Ahnung wie man die
deaktivieren kann (ich habe sie ja gar nicht aktiviert).

Jedenfalls bin ich mit meinem Latein am Ende und hoffe das ihr mir
helfen könnt.

von Heinz (Gast)


Lesenswert?

War wohl 'n Schnäppchen?

Aber ohne Schaltplan und Programm können wir da nicht mitreden.

MfG, Heinz

von Sepp (Gast)


Lesenswert?

Es würde mir auch schon helfen wenn mir jemand sagen könnte, ob man
überprüffen kann welche alternativen Funktionen an eine Port aktiviert
sind!

von Eddi (Gast)


Lesenswert?

Ja, das kann man sehr leicht in dem Quelltext ueberpruefen, den Du
geschrieben hast. Was dort nicht aktiviert ist, ist auch nicht
aktiviert.

von Sepp (Gast)


Lesenswert?

Also, ich poste hier mal die zwei Unterprogramme, in denen die Ports
verwendet werden.

Ich kanns mir zwar fast nicht vorstellen, das der Fehler hier liegt,
aber vieleicht findet ja jemand den Fehler.

An der funktion "Entprell" liegts übrigens nicht, denn ich habe es
mit und ohne Entprellen versucht.

void ReadBase (void)
   {
   if (Entprell(PIND,5,200))
      {
      MenuHorizontal+=1;
      }
   if (Entprell(PIND,1,200))
      {
      MenuHorizontal-=1;
      }
   if (Entprell(PIND,2,200))
    {
    MenuVertikal+=1;
    }
   if (Entprell(PIND,3,200))
    {
    MenuVertikal-=1;
    }
   if (Entprell(PIND,0,200))
      {
      if (PWM>0)
         {
         PWM=0;
         }
      else
         {
         PWM=100;
         }
      }
   }

void Inits (void)
   {
   outp (0xFF, DDRA);
   outp (0x00, DDRB);
   outp (0x00, DDRC);
   outp (0xC0, DDRD);
   lcd_init(LCD_DISP_ON);
   lcd_clrscr();
   MenuHorizontal=MenuVertikal=KlatschStatus=0;
   PWM=100;
   vorher=1;
   }

Könnte das Problem vieleicht auch mit dem Makefile zusammenhängen? Das
ist nämlich das Einzige das ich nicht selber geschrieben habe.

Ich danke euch schon im Voraus für Eure Antworten und
Lösungsvorschläge.

von Sepp (Gast)


Lesenswert?

Sorry, da hat mir der Submit Knopf einen Streich gespielt.
Sollte eigentlich nur einmal erscheinen.

von Mathias Giacomuzzi (Gast)


Lesenswert?

Wie machst du das mit der Funktion Entprell, das sieht irgendwie gut
aus!! Kannst du den Code mal posten??

Danke mfg mathias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.