CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: CodeVision AVR в вопросах и ответах

Сообщение ploop »

Ссылки пожалуйста, я её оставил.
Просто широкие изображения растягивают форум, из-за этого страдает вся страница. Не у всех мониторы 100500 точек в ширину.
Аватара пользователя
Valek3306
Встал на лапы
Сообщения: 95
Зарегистрирован: Вт авг 03, 2010 22:51:57
Откуда: Санкт-Петербург
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Valek3306 »

vitalik_1984, нужно это для следующего: мерцает сердечко из светодиодов по одной программа, нажимаю я кнопку и она мерцает по второй программе, нажимаю кнопку еще раз и мерцает по третий программе и т. д.
Маленький хакер в подстанцию влез
Перенаправил поток он с АЭС
Клевая мощность два мегаватта,
Быстро горит материнская плата!
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Re: CodeVision AVR в вопросах и ответах

Сообщение ut1wpr »

Valek3306 писал(а):vitalik_1984, нужно это для следующего: мерцает сердечко из светодиодов по одной программа, нажимаю я кнопку и она мерцает по второй программе, нажимаю кнопку еще раз и мерцает по третий программе и т. д.
При каждом нажатии на кнопку увеличиваете (или или уменьшаете) какую-нибудь 8-бит переменную. Далее анализируете остаток от деления на число ваших программ. Пишете нужное вам количество алгоритмов "мерцания" и оформляете их в виде функций. Далее переключателем переходите к выполнению той функции, которой соответствует текущее состояние анализируемого остатка.

Код: Выделить всё

void main( void ){
char cycle;
  for( ;; ){

//
// Здесь анализ нажатия/отпускания кнопки.
//

     switch( cycle++ % 2){
        case 0: Progr_1(); break;
        case 1: Progr_2(); break;
        case 2: Progr_3(); break;
        default: ;
     }
  }
}

// Ваши алгоритмические функции....

void Progr_1( void ){
// ......
}

void Progr_2( void ){
// ......
}

void Progr_3( void ){
// ......
}

Вместо анализа остатка от деления можно применить простое изменение переменной на +- единицу с контролем на нахождение в границах количества функций.

Код: Выделить всё

if( ++cycle > 2) cycle = 0;
Тогда в переключателе просто....

Код: Выделить всё

     switch( cycle ){
Вариантов много...
С уважением,
Виктор.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение vitalik_1984 »

ut1wpr писал(а): Иногда это бывает единственный способ выхода из бесконечного цикла по выполнению некоего условия.

А как же break?

Код: Выделить всё

for (;;){
if ((i++)>90)break;
}
 

И тем более вопрос был про прерывание.При завершении прерывания остановить код который выполнялся и начать его с начала.
В поисках истины человек развивается.
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Re: CodeVision AVR в вопросах и ответах

Сообщение ut1wpr »

vitalik_1984 писал(а):
ut1wpr писал(а): Иногда это бывает единственный способ выхода из бесконечного цикла по выполнению некоего условия.

А как же break?

Код: Выделить всё

for (;;){
if ((i++)>90)break;
}
 

И тем более вопрос был про прерывание.При завершении прерывания остановить код который выполнялся и начать его с начала.
Не хочу спорить, тем более, что спор на пустом месте. Вы прекрасно знаете, что break выведет из цикла в следующий за циклом оператор. Совсем недавно у меня возникла необходимость выходить в точку, которая отличается от точки выхода по break. Я и вышел. Именно по goto. И никто меня не расстрелял... :)
Вопросов прерывания и повторных выполнений "кода с его начала" я не касался. Я лишь прокомментировал ваше крайне негативное отношение к goto.
Думайте и пишите структурировано, и тема "надо ли гоутутать?" просто не будет возникать. Или будет, но очень редко.
Все. Думаю, здесь можно поставить точку. Вопрос о goto в Си неоднократно обсуждался, пустое это...
С уважением,
Виктор.
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: CodeVision AVR в вопросах и ответах

Сообщение ValBag »

Valek3306 писал(а):Как по завершению прерывания начать выполнять бесконечный цикл с начала, а не с того места на котором остановился уходя на прерывание?
А зачем с начала? Судя по дальнейшим пояснениям, вам необходимо переходить между алгоритмами мерцания, в зависимости от нажатой кнопки. Если кнопки "висят" на прерывании, то идентифицируйте их там и ставьте флаги, которые в основной программе анализируются с переходом к соответствующей функции.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: CodeVision AVR в вопросах и ответах

Сообщение FreshMan »

мне нужно выставить фьюзы для атмега8 при тактировании от внешнего кварца на 4МГЦ..............,
нашол вот такую табличкув даташите и выставил.............., правильно ли я сие сделал ? не хочется запороть МК :(
Изображение
Изображение
Tell Me The Truth
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Volgol_555 »

Если фьюзы нужно было выставить на внешний кварц, то: Да правильно выставил:)
Самое гениальное - всегда самое простое
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: CodeVision AVR в вопросах и ответах

Сообщение FreshMan »

в данной проге галочка означает 0 ?
Tell Me The Truth
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: CodeVision AVR в вопросах и ответах

Сообщение *Trigger* »

Да.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
Andrey73s
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Ср фев 24, 2010 23:33:28
Откуда: Тверская обл.

Re: CodeVision AVR в вопросах и ответах

Сообщение Andrey73s »

Всем привет.
Собрал программатор AVR910(сом3).
Установил CodeVisionAVR C Compiler(1.25.9), крякнул его и русифицировал.
Скачал прошивку для Atmega8 и фьюзы. И смотрю как баран на новые ворота.
Как прошить его? Где почитать? Без всяких мудростей.
Какая *** выключила свет в конце туннеля.
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Volgol_555 »

Почитай здесь http://tigerail.narod.ru/AVRM.html
Самое гениальное - всегда самое простое
Аватара пользователя
Andrey73s
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Ср фев 24, 2010 23:33:28
Откуда: Тверская обл.

Re: CodeVision AVR в вопросах и ответах

Сообщение Andrey73s »

Большое спасибо.
А если файл имеет расширение hex?
Какая *** выключила свет в конце туннеля.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение vitalik_1984 »

Это нормальное расширение прошивки.Шейте и все программа сама определит что с ним делать.
В поисках истины человек развивается.
Аватара пользователя
Andrey73s
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Ср фев 24, 2010 23:33:28
Откуда: Тверская обл.

Re: CodeVision AVR в вопросах и ответах

Сообщение Andrey73s »

Да, но слово 1error(s) меня пугает.
Вложения
22,04,12(21-39-01).jpg
(35.53 КБ) 331 скачивание
Какая *** выключила свет в конце туннеля.
R_ura
Грызет канифоль
Сообщения: 293
Зарегистрирован: Сб май 29, 2010 00:08:48
Откуда: Харьков

Re: CodeVision AVR в вопросах и ответах

Сообщение R_ura »

Andrey73s писал(а):Да, но слово 1error(s) меня пугает.

Так на сриншоте результат компиляции. Тебе же надо прошить мк, если я правльно понял?
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение vitalik_1984 »

код в студию :))
В поисках истины человек развивается.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: CodeVision AVR в вопросах и ответах

Сообщение FreshMan »

помогите плиз, делаю часы на атмега8, кварц 4МГц, какой таймер и как сконфигурировать чтобы прерывание происходило раз в 1с ?
Tell Me The Truth
Аватара пользователя
Andrey73s
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Ср фев 24, 2010 23:33:28
Откуда: Тверская обл.

Re: CodeVision AVR в вопросах и ответах

Сообщение Andrey73s »

Andrey73s писал(а):Тебе же надо прошить мк, если я правльно понял?

Да это точно.
Делаю что-то неправильно, а что???
По ссылки Volgol_555 (http://tigerail.narod.ru/AVRM.html)на пункте (пишем здесь свою программку или же вставляем готовый код (удаляя болванку)) завис. Открыл файл и указал на прошивку, он отобразил по моему разумению 16-битный код. А при компиляции пишет ошибка.
Файл прошивки и то, что вставляю, прилагаются.
Заранее прошу сильно не пинать, CodeVisionAVR C Compiler вижу первый раз и программирую тоже впервые, так сказать учусь.
Вложения
Text file.txt
(12.09 КБ) 552 скачивания
av18b20_3.hex
(12.09 КБ) 404 скачивания
Какая *** выключила свет в конце туннеля.
Аватара пользователя
Andrey73s
Вымогатель припоя
Сообщения: 691
Зарегистрирован: Ср фев 24, 2010 23:33:28
Откуда: Тверская обл.

Re: CodeVision AVR в вопросах и ответах

Сообщение Andrey73s »

Ещё несколько скринов по портам программатор определился на com3 в программе тоже на него, а Terminal Settings com4 так и должно быть?
Вложения
23,04,12(08-16-48).jpg
(14.38 КБ) 487 скачиваний
23,04,12(08-16-33).jpg
(27.19 КБ) 450 скачиваний
23,04,12(08-15-50).jpg
(44.08 КБ) 335 скачиваний
Какая *** выключила свет в конце туннеля.
Ответить

Вернуться в «AVR»