- Код: Выделить всё • Развернуть
#include<mega128.h>
#include <delay.h>
#include <stdlib.h>
#include <stdio.h>
#include <lcd.h>
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
unsigned char q;
interrupt [EXT_INT0] void ext_int0_isr(void)
{
q=q+1;
}
int main()
{
char w[1];
DDRA=0x00;
PORTA=0x00;
DDRD=0x00;
PORTD=0xFF;
DDRB=0xF0;
PORTB=0x00;
DDRE = 0b00110000;
PORTE = 0b00100000;
lcd_init(16);
lcd_gotoxy(5,0);
lcd_putsf("Hello!");
delay_ms(3000);
while(1) {
q=0;
lcd_clear();
lcd_putsf("_ 1 _ 2 _ 3 _");
delay_ms(10);
if (!(PINA & 0b00000001)) { //Пуск
lcd_clear();
lcd_putsf("_ 1 _");
delay_ms(1000);
while(PINA.1==1){ //Стоп
SREG.7 = 1;
EIMSK = 0x01;
EICRA = 0x0C;
EICRB = 0x0C;
}
while(PINA & 0b00000100){ //Сброс
lcd_clear();
EIMSK = 0x00;
sprintf(w,"adc= %d\n",q);
lcd_puts(w);
delay_ms(50);
}
lcd_clear();
lcd_putsf("_ 3 _");
delay_ms(2000);
}
}
return 0;
}
Считает но далеко неправельно
что делаю не так?