mikrocontroller.net

Forum: Compiler & IDEs Anfänger STK500 - Taster abfragen


Autor: Oliver Noll (batman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend, auch ich bin nun stolzer Besitzer eines STK500 ;) Ich 
studiere im 2.Sem. Elektrotechnik und auch dort programmieren wir 
Mikrocontroller.

Daher habe ich mir zum üben und basteln das Entwicklungsboard von Atmel 
gekauft. Heute habe ich das Board zum ersten Mal in Betrieb genommen und 
meine ersten Programmier-Versuche hinter mir.

Ich habe bereits einen Timer parametriert,ISR programmiert und alle LEDs 
mit einem bestimmten Takt blinken lassen.

Jetzt wollte ich gerne den Status der Taser abfragen und dann die 
entsprechende LED ansteuern.

Habe mich auch schon mal etwas hier im Forum umgeschaut und bin auch auf 
ähnliche Probleme gestoßen!

Habe jetzt diesen funktionierenden Code:
#include <avr/io.h> 
#include <avr/interrupt.h>

void main(void)
{
  PORTB= 0xFF;
  DDRB = 0xFF;
  DDRD = 0x00;  
  
  while (1)
    {
        PORTB= 0xFF;
  
  if(PIND==0xFE)
  PORTB=~0x01;
  }

  
}


Jetzt habe ich aber nochmal eine Frage:

Mit dieser Anweisung if(PIND==0xFE) klappt es, doch damit 
if(PIND==~0x01) nicht!?

Warum?

mfg

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die rechte Seite des Vergleichs ist eine Zahlkonstante. In diesem Fall 
ohne zusätzliche Kennzeichnung der Zahlkonstante ist es ein Integer 
(int). Die beiden Integers 0xFE (genauer: 0x00FE) und ~0x01 (genauer: 
~0x0001) sind nicht gleich.

Autor: Brun ... (brun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab auch ein STK500. Da sind die Taster per Hardware auf Activ-Low.
Also gedrückt=0 und nicht gedrückt=1.

Das selbe gilt auch für die LEDs.
Steht auch in der Hilfe vom WinAVR.

Gruß Brun

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.