Zdravím Vás chcel by som si naprogramovať na atmega8 spínanie brzdových svetiel na autíčku.
Princíp by mal byť jednoduchý keď mám páku nad 50% tak auto ide do predu, keď mám páku pod 50% tak cúva resp. brzdí a svetlo sa rozsvieti. Upravil som si nejaké programy čo som našiel na internete ale nefunguje mi to a neviem prečo, pritom codevisionavr neukázalo žiadnu chybu.
Môžte mi poradiť prosím?
Upozorňujem že som úplný začiatočník v programovaní a zatiaľ som zvládol akurát tak blikanie LED.
prikladám program:
Chip type : ATmega8L
Program type : Application
Clock frequency : 16,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega8.h>
#include <delay.h>
unsigned char ServoValue;
unsigned char i;
unsigned long TickCount;
unsigned char adc_input;
#define ADC_VREF_TYPE 0x40
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
#asm(“cli”);
TCNT0=0x83;
TickCount++; // Inkrement pocitadla milisekund
#asm(“sei”);
}
interrupt [EXT_INT0] void ext_int0_isr(void)
{
#define SIGNAL PORTD.2
#asm("cli");
if (!SIGNAL)
{
TCCR1B=0x03;
}
else
{
TCCR1B=0x00;
ServoValue = (TCNT1L - 125) * 2;
TCNT1H=0x00;
TCNT1L=0x00;
}
#asm("sei");
}
#define BRZDA PORTC.0
void main(void)
{
ADMUX=adc_input|ADC_VREF_TYPE;
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
while (1)
{
i=ServoValue;
if (ServoValue < 50) BRZDA = 1; //ovládanie BRZD
else BRZDA = 0;
}
}