Прилагаю код …
Код
#define QZ 8000000L
#define TIME_OCR1A ((QZ / 1024)-1)
int Speed_p;
void Timer1_init(void)
{
OCR1A = TIME_OCR1A; /* прерывание раз в секунду */
TCCR1A = 0x00;
TCCR1B = (1 << 3) | 0x05;
TIMSK |= 1 << 4; /* разрешить прерывание OCIE1A */
}
SIGNAL (TIMER1_COMPA_vect)
{
Speed_p=TCNT0;
TCNT0=0;
}
int main()
{
unsigned int g=0;
char str[10];
Timer1_init();
// Таймер0 считает входные импульсы
// Timer/Counter 0 initialization
TCCR0=0x07;
TCNT0=0x00;
OCR0=0x00;
// Port B initialization
// Func7=Out Func6=Out Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In
// State7=0 State6=0 State5=T State4=T State3=0 State2=T State1=T State0=T
PORTB=0x00;
DDRB=0xC8;
sei();
while(1)
{
..........
.// Формируем строку для вывода
g=(float)(Speed_p)*(float)1.66;
str_out[8]=g%10;g/=10;
str_out[7]=g%10;g/=10;
str_out[6]=g%10;
// выводим строку
reload();// динамическая индикация
}
#define TIME_OCR1A ((QZ / 1024)-1)
int Speed_p;
void Timer1_init(void)
{
OCR1A = TIME_OCR1A; /* прерывание раз в секунду */
TCCR1A = 0x00;
TCCR1B = (1 << 3) | 0x05;
TIMSK |= 1 << 4; /* разрешить прерывание OCIE1A */
}
SIGNAL (TIMER1_COMPA_vect)
{
Speed_p=TCNT0;
TCNT0=0;
}
int main()
{
unsigned int g=0;
char str[10];
Timer1_init();
// Таймер0 считает входные импульсы
// Timer/Counter 0 initialization
TCCR0=0x07;
TCNT0=0x00;
OCR0=0x00;
// Port B initialization
// Func7=Out Func6=Out Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In
// State7=0 State6=0 State5=T State4=T State3=0 State2=T State1=T State0=T
PORTB=0x00;
DDRB=0xC8;
sei();
while(1)
{
..........
.// Формируем строку для вывода
g=(float)(Speed_p)*(float)1.66;
str_out[8]=g%10;g/=10;
str_out[7]=g%10;g/=10;
str_out[6]=g%10;
// выводим строку
reload();// динамическая индикация
}