Danke für deine antwort
ich hab einiges geändert bzw rausgeschmissen...
das einzige was noch nicht bzw. wieder (vorher wars wahrscheinlich nicht richtig
) nicht funktioniert ist der timer! vllt fällt dir ja noch was ein =) wäre super!
ich poste einfach mal den ganzen code ausgeschlossen der UART...manche zeilen sind rein zum testen da und eig unnütz also nicht beachten ; )
#define F_CPU 7370000UL
#define LED_PORT PORTC
#define LED_PIN PC3
#define OUT_PORT PORTC
#define OUT0 PC2
#define OUT1 PC3
#define OUT2 PC4
#define OUT3 PC1
#define OUT4 PC0
#define IN_PORT1 PINB
#define IN_PORT2 PIND
#define IN10 PB0
#define IN11 PB2
#define IN20 PD6
#define IN21 PD7
#include <util/delay.h>
#include <avr/io.h>
#include <avr/interrupt.h>
volatile int zeit = 0;
int hilf = 0;
ISR(INT0_vect)
{
//Timer
zeit = TCNT0;
TCNT0 = 0;
}
int main()
{
char wort[100] = {'H','a','l','l','o',' ','W','e','l','t','\n','\0'};
int zahl = 467;
//char wort[10];
TCNT0 = 0x00;
if(zeit != hilf)
{
hilf = zeit;
uart_puts(zeit);
}
DDRC = (1<<PC3) | (1 << PC4);
PORTC = (1<<LED_PIN); //Led leuchten
PORTD = (1<<PD2) | (1<<PD3) ; // Pullup
//Interrupt_1
DDRD = 0x00;
EICRA |= (1<<ISC11) | (0<<ISC10) ; // fallende Flanke
EIMSK |= (1<<INT0);
sei();
//Timer
DDRB = 0xFF;
PORTB = 0;
TCCR0B |= (1 << CS02) | (1 << CS01) | (1 << CS00); // steigende Flanke
TCCR0B = 0x00; //Timer stopped
uart_init();
while (1) // Blinken
{
PORTB = TCNT0; // Counter ausgeben
_delay_us(100000);
PORTC |= (1<<PC3); //LED an
_delay_us(100000);
PORTC &= ~(1<<PC3); // LED aus
uart_putc(zeit);
//uart_puts(wort);
}
}