Probleme mit Tasterschaltung
Moin,
ich bin an einer einfachen 2 Tasterschaltung zugange mein erstes Avr projekt, leider will das Programm noch nicht ganz
ich bekomme das mit den Eingängen nicht ganz hin. Die Leds habe ich vorher mit einem einfachen Led Testprogramm überprüft.
Die schalter senden ein HIGH level Signal dazu habe ich 10KOhm widerstände verwendet
Code:
#define F_CPU 10000000UL
#include <avr/io.h>
#include <util/delay.h>
void PowerOn(){
/**********Start Powerleds*******************/
DDRB |= 1<<PB0; /* set PB0 to output */
DDRB |= 1<<PB1; /* set PB1 to output */
PORTB |= (1 << PB0); /* LED0 on */
PORTB |= (1 << PB1); /* LED1 on */
/********************************************/
}
void setPins(){
/**************Input*************************/
DDRB &= ~(1 << PB2); /* set PB2 to input*/
PORTB |= (1 << PB2);
DDRB &= ~(1 << PB3); /* set PB3 to input*/
PORTB |= (1 << PB5);
/********************************************/
/**************Ouput*************************/
DDRD |= 1<<PD6; /* set PB6 to output */
DDRD |= 1<<PD7; /* set PB7 to output */
PORTD &= ~(1<<PD6); /* PD6 off */
PORTD &= ~(1<<PD7); /* PD7 off */
/********************************************/
}
void eventhandler(){
/**********Read Input PB2 and PB3*************/
if( !(PINB & (1 << PB2)) ) {
PORTD |= 1<<PD6; /* LED on */
}else {
PORTD &= ~(1<<PD6); /* LED off */
}
if(!(PINB & (1 << PB3)) ){
PORTD |= 1<<PD7; /* LED on */
}else{
PORTD &= ~(1<<PD7); /* LED off */
}
}
int main(void) {
setPins();
PowerOn();
while(1) {
// eventhandler();
}
return 0;
}
Liste der Anhänge anzeigen (Anzahl: 1)
Die Taster sind direkt 5 VCC angeschlossen und an z.B. PB2 angeschlossen und an einem 10KOhm widerstand welcher an Masse angeschlossen ist.
Anhang 22277
Liste der Anhänge anzeigen (Anzahl: 1)
Die Testplatine
Anhang 22278