Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [avr] Проблемка с ATTiny2313 
:(
    Опции темы
AndreyKharkov
Дата 6.12.2010, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 6.12.2010

Репутация: нет
Всего: нет



Народ проблема в следующем:
Использую проц Tiny2313 
 на порт B повесил семисигментный индикатор на пять символов а на D делаю динамику по совпадению короткого таймера.
Как только включаю прерывание INT 0 или INT1 динамика гаснет (впечатление что проц заходит в прерывание и не может выйти)
Прерывание по падающему фронту.
 Может кто сталкивался с пробелмой прерываний в данной процессоре? подскажите кто чего может!

Программа такая
Конфигурация
Код

//-------------------------------------------------------------------------
void INITIAL_CPU(void)
{
// init ports
DDRD=0xFF;                  // output/input 
!!!!!!пробовал и int-ы конфигурировать как входы
//DDRD=0xFF;                // output/input
DDRB=0xFF;                  // output
// init Timers              // Fuse xtal - internal 1ЬПс CTC mode 2kGc
TCCR0A=(1<<WGM01);          // 
TCCR0B=(1<<CS01);           // div 8
OCR0A=0x3e;                 // set count time      
TIMSK=(1<<OCIE0A);          // set sourse of interrupt
//
//init ext interrupt INT1 on falling
//MCUCR=(1<<ISC11);           // 
//GIMSK=0;
// задание начальных значений прееменным и регистрам модулей
TCNT0=0;                    //
}
//-------------------------------------------------------------

динамика
Код

//--------------------------------------------------------------------------------------------
#pragma vector = INT1_vect
__interrupt void OnSchet(void)
{
    unsigned char sreg=SREG;
    EIFR=(1<<INTF1)|(1<<INTF0);
    if(Fl_Pause==0xFF)  {FL_chet=0;}
    else                {FL_chet=0xFF;}
    SREG=sreg;
}
//--------------------------------------------------------------------------------------------
#pragma vector = TIMER0_COMPA_vect
__interrupt void OnT0(void)
{
  unsigned char sreg=SREG;

//  PORTD=0x73;  
  PORTD=0x7F;  
  pointer_ind++;
  if(pointer_ind>=5)  {pointer_ind=0;}
  
  PORTB=IND[pointer_ind];
 
  if(pointer_ind==0)  {PORTD=0x72;}
  if(pointer_ind==1)  {PORTD=0x71;}
  if(pointer_ind==2)  {PORTD=0x63;}
  if(pointer_ind==3)  {PORTD=0x53;}
  if(pointer_ind==4)  {PORTD=0x33;}
/* 
  if(pointer_ind==0)  {PORTD=0x7e;}
  if(pointer_ind==1)  {PORTD=0x7d;}
  if(pointer_ind==2)  {PORTD=0x6F;}
  if(pointer_ind==3)  {PORTD=0x5F;}
  if(pointer_ind==4)  {PORTD=0x3F;}
*/
  Fl_count=0xFF;
  SREG=sreg;
}


В жизне не работал с такими маленькими процами мож я чего не знаю! просвятите!

Добавлено @ 17:46
и еще  в рогргамме в последней строчке запрещено прерівание  - оно разрешается в теле 



M
UniBomb
Не забываем пользоваться кнопкой код


Это сообщение отредактировал(а) UniBomb - 7.12.2010, 00:41
PM MAIL   Вверх
UniBomb
Дата 7.12.2010, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 97



1. Зачем в кажом прерывании ты используешь эти две строки:

Код

    unsigned char sreg=SREG;
//...
    SREG=sreg;

?

2. Какой смысл ты вкладываешь в строку " EIFR=(1<<INTF1)|(1<<INTF0);"?
PM MAIL ICQ Skype   Вверх
Vezd
Дата 11.7.2014, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.6.2011

Репутация: нет
Всего: нет



 В МК ATtiny2313 частота синхронизации ввода-вывода clkI/O равняется частоте встроенного RC-генератора (тактовой частоте) или отличается от нее? 

Это сообщение отредактировал(а) Vezd - 11.7.2014, 15:56
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.