
Zitat von
sast
Wenn sich der Zustand des Ausgangs mit dem Zustand des Eingangs ändern soll, dann musst du auch den Ausgang wieder zurück setzen
Damn, du hast recht - hatte ich zuerst auch in meinem Beitrag angekreidet und dann in einem Anfall geistiger Umnachtung wieder rausgenommen ...
@fuxx: Der zweite Teil deiner Fallunterscheidung fehlt - du setzt zwar den Ausgang auf High, aber wenn die Fallunterscheidung "false" ergibt, tust du genau - nichts, wie du beobachtet hast.
Korrigiert sähe es etwa so aus:
Code:
#include "asuro.h"
#include <avr/io.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);
} else {
PORTD = 0x00;
}
}
}
mfG
Markus
Edit: Nachtrag, die Variante mit der Schleife ist ziemlicher Käse, solange wie die Bedingung erfüllt ist, rennt das Teil im Kreis - wenn du noch was anderes tun willst, gute Nacht ...
Lesezeichen