Forum: Mikrocontroller und Digitale Elektronik Probleme mit Eingängen


von Martin S. (drunkenmunky)


Lesenswert?

Hallo, kann jemand mal schnell über den Code drüberschauen?
Ich wollte eigentlich nur ein Eingang abfragen und solange einen Ausgang 
setzen. Was ist falsch?
1
#include <avr/io.h>       
2
 
3
int main (void) {          
4
 
5
   DDRB  = 0b11111110;       // Pin 0 ->Eingang, Pin 1 -> Ausgang
6
   PORTB = 0b00000001;       // Pull-up Widerstand für Pin 0 aktivieren
7
 
8
   while(1) {   
9
    if ( !(PINB & (1<<PINB0)) )             //wenn PB0 0 ist if-Anweisung ausfuehren
10
      {  PORTB |= (1<<PB1);                // Ausgang Port B Pin 1 setzen
11
      }    
12
    if  (PINB & (1<<PINB0))                //wenn PB0 1 ist if-Anweisung ausfuehren
13
      {  PORTB &= ~(1<<PB1);               // Ausgang Port B Pin 1 löschen
14
      } 
15
            
16
   }                   
17
  
18
   return 0;               
19
}

von Robert W. (rweber)


Lesenswert?

Martin S. wrote:
> setzen. Was ist falsch?

Was geht denn nicht?

von Martin S. (drunkenmunky)


Lesenswert?

Hi,
bisher ging gar nichts.

hab grad rausgefunden dass es funktioniert, wenn ich den Stecker vom 
Parallelport abziehe. kann man es auch so einstellen dass es mit stecker 
funktioniert?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> wenn ich den Stecker vom Parallelport abziehe.
In dem Programm steht nichts von einem Parallelport :-/

Evtl. solltest du beschreiben was du womit und worauf machst?
Welcher Controller, welches Board, welcher Programmer, welches 
Betriebsystem?

EDIT: Und auch schreiben was nicht geht  :-o

von Einer (Gast)


Lesenswert?

Dein AVR hat einen Parallelport?

von Sepp -. (sepp_o)


Lesenswert?

Tag

Dein Problem ist, dass Windows meint, am Parallelport den Pin, der 
normalerweise für die Resetleitung verwendet wird setzen zu müssen, da 
ja laut Microsoft nur Drucker an diese Schnittstelle angeschlossen 
werden und der initialisiert werden muß.

Dieses Problem habe ich einfach gelöst indem ich mit einem 
Wechselschalter die beiden Enablepins des 74HCT244 im Programmieradapter 
auf high lege um ihn nach dem Programmieren zu deaktivieren.

Bei der "nur Widerstandsversion" reicht es die Reset-Leitung mittels 
Schalter wegzuschalten.

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.