Anfänger-Problem mit Eingangsabfrage
Hallo zusammen,
Ich habe leider schon wieder ein Problem. Ich versuche den Status eines Eingangs abzufragen, aber das will nicht so klappen.
Ich möchte testweise in einer Endlosschleife einen Eingang abfragen, und falls dieser gesetzt ist, eine Aktion durchführen
Das Problem: Wenn ich den Status des Eingangs verändere und danach den Controller "resete", funktioniert es, den Ausgang auf High/Low zu setzen aber nicht im Verlauf des Programms. Hab auch schon verschiedene Endlosschleifen versucht. Alles nichts genützt.
Hier mein Program:
#include "asuro.h"
#include <avr/io.h>
#include "iom8.h"
#include <stdlib.h>
#include <avr/delay.h>
#include <inttypes.h>
int main(void)
{
DDRD = 0xff;
DDRB = 0x00; //PB als EIngang
PORTB = 0xff; //internen PULL-UP einschalten
while (1) {
if (PINB & (1<<PINB0))
PORTD = (1<<PD3);
}
}
Re: Anfänger-Problem mit Eingangsabfrage
Zitat:
Zitat von fuxx
... Status eines Eingangs abzufragen ... will nicht so klappen
Die fehlerhafte Aktion mit der ioXXXX.h hat markusj schon beanstandet. Daher wundert es mich, dass Dein Compiler das korrekt übersetzt. Hast Du beim Hexfile schon aufs Datum geschaut? Ob das nicht einer ist, der früher mal erstellt wurde (<< ist ein beliebter Fehler, tritt bei mir öfters nach Mitternacht auf *ggg*).
Der folgende Code (-schnipsel) läuft bei mir mit ähnlichen Portinitialisierungen auf (m)einem mega168.
Code:
// Pins/Ports als Ein- (0) oder Ausgänge (1) konfigurieren, Pull Ups (1) aktivieren
// A = Ausgang, E = Eingang ohne , EU = Eingang MIT PullUp
DDRB = 0b10011111; // siehe aktuell oben oder Fortschritt/R2D2
PORTB = 0b01100000; // und Port/Pull Ups (1) aktivieren
. . . . . . .
// =================================================================================
. . . . . . .
/* while (1)
{ if ( ! (PINB & (1 << PINB5)) ) // Taste abfragen auf SCK
{ PORTC |= (1<<PC4); } // LED auf PC4/MISO einschalten
else
{ PORTC &= ~(1<<PC4); } // LED auf PC4/MISO ausschalten
oder: if ( PIND & ( 1<<PIND2 ) ); // mache was wenn PinD2 High ist
}
*/
Übrigens: geposteter Code sieht viel besser aus, wenn man ihn in [Code]-Tags packt.
Viel Erfolg.