FartingWeasel
09.02.2006, 18:48
Hallo bin grad dabei mein AVR board mit WINAVR zu proggen und hätt eben probiert mit hilfe eines tasters eine led ein und auszuschalten, hab dazu des programm vom tutorial benutzt aber es geht ned... also der Ausgang wo die led sitzt wird ned auf high gezogen
hier mal mein Programm
#include <avr/io.h>
#include <inttypes.h>
#ifndef F_CPU
#define F_CPU 3686400UL /* Quarz mit 3.6864 Mhz */
#endif
#include <avr/delay.h> /* definiert _delay_ms() ab avr-libc Version 1.2.0 */
/* Einfache Funktion zum Entprellen eines Tasters */
inline uint8_t debounce(volatile uint8_t *port, uint8_t pin)
{
if ( ! (*port & (1 << pin)) )
{
/* Pin wurde auf Masse gezogen, 100ms warten */
_delay_ms(100);
if ( ! (*port & (1 << pin)) )
{
/* Anwender Zeit zum Loslassen des Tasters geben */
_delay_ms(100);
return 1;
}
}
return 0;
}
int main(void)
{
DDRD=0x0ff;
PORTD=0x00;
DDRB &= ~( 1 << PB0 ); /* PIN PB0 auf Eingang (Taster) */
PORTB |= ( 1 << PB0 ); /* Pullup-Widerstand aktivieren */
if (debounce(&PINB, PB0)) /* Falls Taster an PIN PB0 gedrueckt.. */
PORTB = PINB ^ ( 1 << PB1 ); /* ..LED an Port PB1 an-
bzw. ausschalten */
}
Jetzt is natürlich die frage was ned geht?
hier mal mein Programm
#include <avr/io.h>
#include <inttypes.h>
#ifndef F_CPU
#define F_CPU 3686400UL /* Quarz mit 3.6864 Mhz */
#endif
#include <avr/delay.h> /* definiert _delay_ms() ab avr-libc Version 1.2.0 */
/* Einfache Funktion zum Entprellen eines Tasters */
inline uint8_t debounce(volatile uint8_t *port, uint8_t pin)
{
if ( ! (*port & (1 << pin)) )
{
/* Pin wurde auf Masse gezogen, 100ms warten */
_delay_ms(100);
if ( ! (*port & (1 << pin)) )
{
/* Anwender Zeit zum Loslassen des Tasters geben */
_delay_ms(100);
return 1;
}
}
return 0;
}
int main(void)
{
DDRD=0x0ff;
PORTD=0x00;
DDRB &= ~( 1 << PB0 ); /* PIN PB0 auf Eingang (Taster) */
PORTB |= ( 1 << PB0 ); /* Pullup-Widerstand aktivieren */
if (debounce(&PINB, PB0)) /* Falls Taster an PIN PB0 gedrueckt.. */
PORTB = PINB ^ ( 1 << PB1 ); /* ..LED an Port PB1 an-
bzw. ausschalten */
}
Jetzt is natürlich die frage was ned geht?