|  | roboforum.ruТехнический форум по робототехнике. |  | 







 #include<mega128.h>
#include <delay.h> 
#include <stdlib.h>  
#include <stdio.h>  
#include <lcd.h>
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
 unsigned long q;        
interrupt [EXT_INT0] void ext_int0_isr(void)   // процедура обработки прерывания
{ 
  
          q++;             //с каждым прерыванием значение переменной увеличивается на 1
           
}
                
int main()
{
         char w[32];    //для преобразования числа в строку/символы
 DDRA=0x00;
 PORTA=0x00;
 DDRB=0xF0;
 PORTB=0x00;
 DDRE = 0b00110000;
 PORTE = 0b00100000;
 lcd_init(16); 
 
 
  lcd_gotoxy(5,0);
      lcd_putsf("Hello!"); 
   Privet();     
     delay_ms(3000);
      
       while(1) {
       q=0;
      lcd_clear();
     
      Go(); 
      lcd_putsf(" "); 
      Stop();
       lcd_putsf(" ");
      Reset(); 
      delay_ms(10); 
            
    if  (!(PINA & 0b00000001))  {                //Пуск
    lcd_clear();
      Go(); 
      delay_ms(1000);
          SREG.7 = 1;
        EIMSK = 0x01;
        EICRA = 0x0C;
        EICRB = 0x0C;  
          
       while(PINA & 0b00000100){                 //Сброс 
         lcd_clear(); 
        sprintf(w,"adc= %d\n",q);
        lcd_puts(w);
         delay_ms(50);
        } 
       lcd_clear();          
         Reset(); 
         delay_ms(2000);
         } 
           
      }         
  return 0;
}








Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0