Olle_Filzlaus
04.11.2007, 18:36
Hallo,
ich habe bis jetzt in Bascom programmiert und möchte jetzt auf C umsteigen.
Das erste Programm war einfach eine LED zum leuchten zu bringen. Das ging einfach :-)
Jetzt möchte ich gern einen Taster benutzten. Und das versuche ich jetzt seit zwei Tagen. Ich verwende AVR Studio und das Atmega Board von Pollin.
/* LED Test für Pollin Board */
#include <avr/io.h>
#include <stdint.h>
#ifndef F_CPU
#define F_CPU 8000000
#endif
int main (void)
{
//************ LED **********************************************
/*DDRD = 0xff; /* Alle Pins des Portes werden zu Ausgängen */
DDRD |= (1<<PD6) | (1<<PD5); /* Pin D6 und D5 als Ausgang */
//************ Taster *******************************************
DDRD &= ~ (1<<PD2); /* Pin D2 als Eingang */
// PORTD |= (1<<PD2); /* Pull Up von PIN D2 aktivieren */
PORTD |= (1<<PD6); /* LED PD6 zum testen */
if ( PIND & ( 1<<PIND2 ) ); /* mache was wenn PinD2 High ist */
{
PORTD |= (1<<PD5); /* Setzt Pin D5 auf High */
}
PORTD &= ~ (1<<PD5); /* Setzt Pin D5 wieder auf low */
return 0;
}
Die Lampe an Port D6 geht Problemlos. Aber die LED an D5 reagiert nicht auf einen Tastendruck. Sie leuchtet aber komischerweise ganz schwach.
Achja, die Taster geben in gedrückten Zustand ein High Signal ab.
Ich vermute mal das ich irgendwo einen Fehler habe. Könnt ihr mir bitte helfen. Mit Hilfe eines Bascom Programmes konnte ich die Hardware testen, sie ist IO.
Thx Arno
ich habe bis jetzt in Bascom programmiert und möchte jetzt auf C umsteigen.
Das erste Programm war einfach eine LED zum leuchten zu bringen. Das ging einfach :-)
Jetzt möchte ich gern einen Taster benutzten. Und das versuche ich jetzt seit zwei Tagen. Ich verwende AVR Studio und das Atmega Board von Pollin.
/* LED Test für Pollin Board */
#include <avr/io.h>
#include <stdint.h>
#ifndef F_CPU
#define F_CPU 8000000
#endif
int main (void)
{
//************ LED **********************************************
/*DDRD = 0xff; /* Alle Pins des Portes werden zu Ausgängen */
DDRD |= (1<<PD6) | (1<<PD5); /* Pin D6 und D5 als Ausgang */
//************ Taster *******************************************
DDRD &= ~ (1<<PD2); /* Pin D2 als Eingang */
// PORTD |= (1<<PD2); /* Pull Up von PIN D2 aktivieren */
PORTD |= (1<<PD6); /* LED PD6 zum testen */
if ( PIND & ( 1<<PIND2 ) ); /* mache was wenn PinD2 High ist */
{
PORTD |= (1<<PD5); /* Setzt Pin D5 auf High */
}
PORTD &= ~ (1<<PD5); /* Setzt Pin D5 wieder auf low */
return 0;
}
Die Lampe an Port D6 geht Problemlos. Aber die LED an D5 reagiert nicht auf einen Tastendruck. Sie leuchtet aber komischerweise ganz schwach.
Achja, die Taster geben in gedrückten Zustand ein High Signal ab.
Ich vermute mal das ich irgendwo einen Fehler habe. Könnt ihr mir bitte helfen. Mit Hilfe eines Bascom Programmes konnte ich die Hardware testen, sie ist IO.
Thx Arno