Bitmanipulation Tastereingang

Gast #3192579
Lesenswert?
• ▲
▼
Hallo zusammen. In meinem Projekt scheitert es an einer Kleinigkeit.

#include <avr/io.h>

int main (void){

        DDRB |= 0b00000010;

  while(1){
    if (1<<PB0){      //wenn eingang bei PB0
      PORTB |= (1<<PB1);  //dann ausgang bei PB1
    }
  }
}

Die Eingangsspannung bei PB0 kommt von einem Transistor(Emmiter), 
bedeutet bei mir 4,3V (5-0,7). Liegt es daran, dass der Mikrocontroller 
den Ausgang nicht schaltet.? Was kann man machen.?

MfG: mderw
Gast #3192592
Lesenswert?
• ▲
▼
mderw schrieb:
>//wenn eingang bei PB0
>//dann ausgang bei PB1
Diese Kommentare sind mindestens nichtssagend wenn nicht falsch. Und der 
Ausgang wird niemals abgeschaltet. Vielleicht wolltest du sowas

if(PINB&(1<<PB0)) //Wenn Eingang auf logisch 1
  PORTB|=(1<<PB1); //Ausgang auf 1 setzen
else
  PORTB&=~(1<<PB1); Ausgang auf 0 setzen
Gast #3192596
Lesenswert?
• ▲
▼
mderw schrieb:
> Ja. Das habe ich übersehen. Es geht aber immer noch nicht. Liegt es doch
> an der Spannung von 4,3V.?

Ach so, dein Eingang wird per Transistor gesteuert. Jetzt verstehe ich. 
Wenn du den genauen Typ des µC verrätst könnte man im Datenblatt gucken 
ob 4,3V schon als logisch 1 erkannt werden (ich vermute mal ja).

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.