Gast
#3490960
Hallo Zusammen,
ich arbeite mich gerade in die Welt der µC und habe ein Problem.
Das schalten der Pins als Ausgang hat funktioniert. Jetzt möchte ich den
Eingang einlesen. Habe dazu folgenden simplen Code geschrieben. Dieser
wird ausgeführt (ohne Fehler) jedoch funktioniert nichts.
Wo ist der Fehler in meinem Code?
Wenn ich den Taster drücke <--> loslasse sollte sich doch etwas tun?
#include <avr/io.h>
#include <avr/interrupt.h>
void io_init(void);
void clock_init(void);
int main(void){
clock_init();
io_init();
while(1){
PORTE.IN = PORTE.OUT;
}
return 0;
}
void io_init(void){
PORTE.DIR = 0xff;
PORTE.DIR = 0x00;
}
void clock_init(void){
//Oszillator auf 32Mhz stellen
OSC.CTRL |= OSC_RC32MEN_bm;
// Warten bis der Oszillator bereit ist
while(!(OSC.STATUS & OSC_RC2MEN_bm));
//Schützt I/O Register, Interrupts werden ignoriert
CCP = CCP_IOREG_gc;
//aktiviert den internen Oszillator
CLK.CTRL = (CLK.CTRL & ~CLK_SCLKSEL_gm) | CLK_SCLKSEL_RC32M_gc;
}
Vielen Dank.
Gruß,
Stefan