roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 май 2025, 14:52

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Непонятки с таймером и кнопкой
СообщениеДобавлено: 13 авг 2011, 02:31 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июн 2010, 08:04
Сообщения: 201
Откуда: Казань
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]);




}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятки с таймером и кнопкой
СообщениеДобавлено: 16 авг 2011, 21:29 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO