mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit Eingängen


Autor: Martin S. (drunkenmunky)
Datum:

Bewertung
0 lesenswert
nicht 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?
#include <avr/io.h>       
 
int main (void) {          
 
   DDRB  = 0b11111110;       // Pin 0 ->Eingang, Pin 1 -> Ausgang
   PORTB = 0b00000001;       // Pull-up Widerstand für Pin 0 aktivieren
 
   while(1) {   
    if ( !(PINB & (1<<PINB0)) )             //wenn PB0 0 ist if-Anweisung ausfuehren
      {  PORTB |= (1<<PB1);                // Ausgang Port B Pin 1 setzen
      }    
    if  (PINB & (1<<PINB0))                //wenn PB0 1 ist if-Anweisung ausfuehren
      {  PORTB &= ~(1<<PB1);               // Ausgang Port B Pin 1 löschen
      } 
            
   }                   
  
   return 0;               
}

Autor: Robert Weber (rweber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin S. wrote:
> setzen. Was ist falsch?

Was geht denn nicht?

Autor: Martin S. (drunkenmunky)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Einer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein AVR hat einen Parallelport?

Autor: Sepp -o- (sepp_o)
Datum:

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

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.