Wiem, że to niezgodne z regulaminem i, że tak nie powinienem robić, ale dałby ktoś gotowca do ultradźwiękowego czujnika odległości na Atmege8 1MHz? Męczę się nad kodem już chyba miesiąc i nic mi nie działa. To jest mój kod, może ktoś zmodyfikuje, tak, żeby w końcu to zadziałało:
#include <avr/io.h>
#include <stdlib.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <util/atomic.h>
#include <uart.h>
#include "lcd.c"
long double time;
long double distances;
int main(void)
{
LCD_Ini();
MCUCR |= (1<<ISC00) | (1<<ISC11);
GICR |= (1<<INT0) | (1<<INT1);
sei();
PORTC |= (1<<PC4);
_delay_us(10);
PORTC &= ~(1<<PC4);
while(1)
{
}
}
SIGNAL(SIG_INTERRUPT0)
{
time++;
_delay_us(1);
}
SIGNAL(SIG_INTERRUPT1)
{
distances = (time*34/100)/2;
char Temp[8];
sprintf(Temp,"%i", distances);
while(1)
{
LCD_Czysc();
LCD_ZapiszText(Temp);
_delay_ms(1000);
}
}