roboforum.ru

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

Непонятки с таймером и кнопкой

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Непонятки с таймером и кнопкой

Сообщение d3xr » 13 авг 2011, 02:31

16 мега, подключен 7 сегментный индикатор на 4 разряда и кнопка. Кварц на 16мег. компилятор cvavr. Функция вывода числа работает верно, например
Код: Выделить всёРазвернуть
print(751);

Но при выполнении того же действия при нажатии кнопки происходит что то совсем не понятное моему разуму: число 0751 выводится поразрядно, начиная с младшего, с задержкой около секунды и после отрисовки и отпускания кнопки остается висеть на индикаторе (я ожидал 0000 увидеть)

Пожалуйста, не могли бы вы посмотреть код и сказать, что в нем не то?
Код: Выделить всёРазвернуть
if (PINA.1==0) print(751); 


Код: Выделить всёРазвернуть
    #include <mega16.h> 
    #include <delay.h>

unsigned char segment[10]= { 0x40,0x76,0xC,0x24,0x32,0x21,0x1,0x74,0x0,0x20 }, data[4]= {0,0,0,0};       
     

     void cifra(int z)

    PORTC=0xFF;   
    PORTC = segment[z];
    delay_ms(5);
   
}
   
   void print(int n)
{

data[0]=n%10; n = n/10;   
data[1]=n%10; n = n/10;   
data[2]=n%10; n = n/10;     
data[3]=n%10;   
   
}


   
   void initialization()
   {     
DDRC=0xFF;
PORTC=0xFF;
DDRA=0xFD;             
PORTA=0xFD; 
   
TCCR0=0x05;
TCNT0=0x16;
OCR0=0x00;
TIMSK=0x01;
     
#asm("sei");
   } 
 

    void main(void)       
{
    initialization(); 
   
while (1)
      {         
      if (PINA.1==0) print(751);     
      }   



interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{

TCNT0=0x16;

PORTA=0x10; cifra(data[0]);
PORTA=0x20; cifra(data[1]);
PORTA=0x40; cifra(data[2]);
PORTA=0x80; cifra(data[3]);




}
Аватара пользователя
d3xr
 
Сообщения: 201
Зарегистрирован: 01 июн 2010, 08:04
Откуда: Казань

Re: Непонятки с таймером и кнопкой

Сообщение d3xr » 16 авг 2011, 21:29

разобрался, можно закрыть
Аватара пользователя
d3xr
 
Сообщения: 201
Зарегистрирован: 01 июн 2010, 08:04
Откуда: Казань


Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

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