axors
09.12.2005, 14:01
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/iom32.h>
#define SYSCLK 3686400
#define Preclk 3600
#define LEDS_DDR DDRC
#define LEDS_PORT PORTC
int i=0;
void delay_ms(unsigned int ms);
signal (SIG_OUTPUT_COMPARE0 )
{
PORTC=~PORTC;
delay_ms(10);
}
void delay_ms(unsigned int ms)
{
unsigned int zaehler;
while (ms)
{
zaehler = SYSCLK / 3686.4;
while (zaehler)
{
asm volatile ("nop");
zaehler--;
}
ms--;
}
}
int main(void)
{
//PortC wird als AUsgang definiert
LEDS_DDR = 0xFF;
//PortC wird auf o gesetzt
//PORTC=0xFF;
//Interrupts enablen
sei();
//Output compare match interrupt enable
timer_enable_int (1<<OCIE0);
//Output Compare Register setzen
OCR0=0xF0;//240
//Timer starten Vorteiler 1024
TCCR0=(1<<WGM01)|(1<<CS00)|(1<<CS02);
//Endloschleife
for(;;)
{
/*if(TCNT0==0xEF)
{
if(PINC==0x10)
{
PORTC=0x08;
delay_ms(100);
}
else
{
PORTC=0x10;
delay_ms(100);}
}
*/
}
}
Bitte sagts mir waums ned geht
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/iom32.h>
#define SYSCLK 3686400
#define Preclk 3600
#define LEDS_DDR DDRC
#define LEDS_PORT PORTC
int i=0;
void delay_ms(unsigned int ms);
signal (SIG_OUTPUT_COMPARE0 )
{
PORTC=~PORTC;
delay_ms(10);
}
void delay_ms(unsigned int ms)
{
unsigned int zaehler;
while (ms)
{
zaehler = SYSCLK / 3686.4;
while (zaehler)
{
asm volatile ("nop");
zaehler--;
}
ms--;
}
}
int main(void)
{
//PortC wird als AUsgang definiert
LEDS_DDR = 0xFF;
//PortC wird auf o gesetzt
//PORTC=0xFF;
//Interrupts enablen
sei();
//Output compare match interrupt enable
timer_enable_int (1<<OCIE0);
//Output Compare Register setzen
OCR0=0xF0;//240
//Timer starten Vorteiler 1024
TCCR0=(1<<WGM01)|(1<<CS00)|(1<<CS02);
//Endloschleife
for(;;)
{
/*if(TCNT0==0xEF)
{
if(PINC==0x10)
{
PORTC=0x08;
delay_ms(100);
}
else
{
PORTC=0x10;
delay_ms(100);}
}
*/
}
}
Bitte sagts mir waums ned geht