Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Уроки СИ для AVR микроконроллеров

Непрочитано 29.04.2013, 20:53  
Митя
Временная регистрация
 
Регистрация: 09.11.2009
Сообщений: 43
Сказал спасибо: 44
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
Митя на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от s64 Посмотреть сообщение
" ; " - нужно убрать, по моему.
Точно. Но проблема не в этом ;(
Реклама:
Митя вне форума  
Непрочитано 30.04.2013, 00:04  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Митя Посмотреть сообщение
Точно. Но проблема не в этом ;(
А глобально разрешить прерывания не пробовали? Что-то я не вижу __interrupt_enable по тексту (как оно там, в вашем компиляторе?). Или оно подразумевается как нечто само собой разумеющееся?
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 30.04.2013, 01:14  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от ut1wpr Посмотреть сообщение
Что-то я не вижу __interrupt_enable по тексту (как оно там, в вашем компиляторе?). Или оно подразумевается как нечто само собой разумеющееся?
Невнимательно смотрите:
Код:
int main (void) 
{
  __enable_interrupt();
_Артём_ вне форума  
Непрочитано 30.04.2013, 01:18  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Митя Посмотреть сообщение
Джентльмены!
Помогите разобраться с прерываниями
понимаю что ошибка в ДНК но где именно
процедура прерывания не вызывается
без прерываний АЦП работает
Всё вроде у вас правильно. Как проверяете программу?
Может не успеваете отследить прерывания (оно должно возникать приблизительно раз в 8*13=104 такта)?
Или в симуляторе не работает?

Последний раз редактировалось _Артём_; 30.04.2013 в 01:48.
_Артём_ вне форума  
Сказали "Спасибо" _Артём_
Митя (30.04.2013)
Непрочитано 30.04.2013, 01:24  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от _Артём_ Посмотреть сообщение
Невнимательно смотрите:
Код:
int main (void) 
{
  __enable_interrupt();
Да, невнимателен, извините.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 30.04.2013, 06:47  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Митя, возникает два вопроса:
1. Как, точнее, чем определяете обработку прерывания?
2. На чем основана уверенность в работе АЦП?
Раз уж ступор - логичней суп отделить от мух и разобраться с ними по отдельности.
Скажем, преобразования одиночные (в цикле) с прерываниями, а уж потом загонять АЦП в непрерывный режим.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Сказали "Спасибо" akegor
Митя (30.04.2013)
Непрочитано 30.04.2013, 10:16  
Митя
Временная регистрация
 
Регистрация: 09.11.2009
Сообщений: 43
Сказал спасибо: 44
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
Митя на пути к лучшему
Вопрос Re: Уроки СИ для AVR микроконроллеров

Спасибо за помощ уважаемые
akegor ›› 1 тестирую и в симе и на железе результат один, все что внутрифункции " __interrupt void ADCint(void)" не выполняется (в симе на этоот брякпоинт не заходит)
2 без прерываний работает возвращает то что надо
Код:
#include ‹ioavr.h›
#include ‹intrinsics.h›
int main (void) 
    PORTB   = 0xFF; /* Give PORTB and the User LEDs an initial startvalue */
    DDRB    = 0xFF; /* Set PORTB as output */

/*** Настройка АЦП ***/ 
ADCSRA |= (1 ‹‹ ADEN) // Включение АЦП
             |(1 ‹‹ ADPS1)|(1 ‹‹ ADPS0);	// предделитель преобразователя на 8
ADMUX |= (0 ‹‹ REFS1)|(0 ‹‹ REFS0) // внешний ИОН
            |(1 ‹‹ MUX0)|(0 ‹‹ MUX1)|(0 ‹‹ MUX2)|(0 ‹‹ MUX3); // вход PC0
while(1)
{ 
ADCSRA |= (1 ‹‹ ADSC);	// Начинаем преобразование
while ((ADCSRA&(1 ‹‹ ADIF))== 0); // Ждем флага окончания преобразования    
int2com(ADCL|ADCH ‹‹ 8); // Считываем  ADC и в передаем через COM
PORTB ^= 0xFF;
__delay_cycles(500000);
}
}
Митя вне форума  
Непрочитано 30.04.2013, 11:18  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

А где ADCIE?
Для возникновения прерывания, вам надо разрешить прерывание от самого устройства и установить глобальный флаг разрешения прерывания.
SasaVitebsk вне форума  
Непрочитано 30.04.2013, 11:49  
Митя
Временная регистрация
 
Регистрация: 09.11.2009
Сообщений: 43
Сказал спасибо: 44
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
Митя на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

SasaVitebsk››
Вот он
Код:
  
__enable_interrupt();
ADCSRA |= (1 ‹‹ ADEN) // Включение АЦП
             |(1 ‹‹ ADPS1)|(1 ‹‹ ADPS0)// предделитель преобразователя на 8
               |(1 ‹‹ ADATE )|(1 ‹‹ ADIE );
и судя по симу выставляется
Митя вне форума  
Непрочитано 30.04.2013, 12:57  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Митя Посмотреть сообщение
SasaVitebsk››Вот он
Ну значит и прерывание возникает. Чудес то не бывает.
Я не заметил подключённого #include "iom2560.h".
Возможно не те адреса. Остальное всё правильно - будет работать
SasaVitebsk вне форума  
Сказали "Спасибо" SasaVitebsk
Митя (30.04.2013)
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


Часовой пояс GMT +4, время: 20:15.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.