AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
16.10.2018, 14:48
|
|
Прохожий
Регистрация: 16.10.2018
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Странная реакция Atmega128
Здравствуйте, форумчане! Такой вопрос:
Есть Atmega128, отладочная плата STK500/501 и Atmel studio 7.0
Написана скромная программка, в которой мигают светодиоды с определенной частотой (Частота схемы 8МГц). При нажатии на определенные кнопки должна изменяться частота мигания.
Так вот проблема в том, что светодиоды меняют частоту мерцания лишь при удержании этой кнопки, а не нажатия. В последних редакциях кода при изменении предделителя вообще не хочет мигать.
Итак, в чём странность - при выставлении в фьюзах бита включения режима соответствия с atmega103(установка 0 бита) код работает адекватно!
Но оставлять так не могу, ибо нацелен на разрешение вопроса без последующих возможных еще больших несуразицах.
В чем может быть дело?
Последний раз редактировалось An-SU; 16.10.2018 в 15:47.
Причина: Дополнение
|
|
|
|
16.10.2018, 15:08
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Странная реакция Atmega128
Начать с логики обработки кнопок.
Исходный код в текстовый файл и прикрепить к первому сообщению (Расширенный режим-›Управление вложениями). Можно несколько вариантов.
В заголовке файла комментариями указывать вариации фьюзов и наблюдаемую реакцию.
Ну и полную схему подключения собранного на задействованные ноги.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
16.10.2018, 15:47
|
|
Прохожий
Регистрация: 16.10.2018
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Странная реакция Atmega128
mike-y-k, спасибо, внес изменения.
А фьюзы:
EXTENDED.M103C - 1
EXTENDED.WDTON - 0
HIGH.OCDEN - 0
HIGH.JTAGEN - 1
HIGH.SPIEN - 1
HIGH.EESAVE - 1
HIGH.BOOTSZ - Boot Flash size = 4096 words start address = $F000
HIGH.BOOTRST - 0
HIGH.CKOPT - 0
LOW.BODLEVEL - Brown-out detection level at VCC = 2.7 V
LOW.BODEN - 0
LOW.SUT_CKSEL - Int.RC.Osc. 8 MHz; Start-up time: 6 CK + 0 ms
|
|
|
|
16.10.2018, 19:39
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: Странная реакция Atmega128
Так неправильно
Код:
|
unsigned char count=0; //предполагаемое время (в мс)
int Sch=250; //для начала частота 250 мс |
int Sch должен быть объявлен как volatile (но если оптимизация выключена, то это не скажется).
count не будет равен ни 3000, ни 5000 - потому что unsigned char - от 0 до 255.
Последний раз редактировалось _Артём_; 16.10.2018 в 19:48.
|
|
|
|
16.10.2018, 20:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Странная реакция Atmega128
Плюс к вышесказанному еще PORTC=~PORTC; - правильнее инвертировать PINC и писАть в порт.
|
|
|
|
16.10.2018, 21:51
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Странная реакция Atmega128
An-SU, уже были замечания - проверьте размерности для всех используемых переменных и регистров в сопоставлении к предполагаемому диапазону значений.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
17.10.2018, 11:49
|
|
Прохожий
Регистрация: 16.10.2018
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Странная реакция Atmega128
Спасибо отписавшим - с размерностями и volatile я исправил буквально через час после написания этой темы, и вы совершенно правы, но на выполнении программы они никак не сказались
|
|
|
|
17.10.2018, 20:33
|
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: Странная реакция Atmega128
Сообщение от An-SU
|
Так вот проблема в том, что светодиоды меняют частоту мерцания лишь при удержании этой кнопки, а не нажатия.
|
- это может быть дребезг контактов. Лечится задержками.
Где такую плату взяли? Сколько стоит?
Для начала период не берут 250(мс), а берут 1-2(с).
Код:
|
TCCR1A|=0; //регистр управления таймером/счетчиком
TCNT1|=0; //Регистр таймера/счетчика |
- регистры нужно либо обнулить, либо задать какие-нибудь нужные биты. А то что Вы пишете - это неприемлемо.
Последний раз редактировалось Signalshik2; 17.10.2018 в 20:47.
Причина: Добавил фразу.
|
|
|
|
17.10.2018, 23:11
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,771 раз(а) в 5,896 сообщении(ях)
|
Re: Странная реакция Atmega128
Сообщение от An-SU
|
Итак, в чём странность - при выставлении в фьюзах бита включения режима соответствия с atmega103(установка 0 бита) код работает адекватно!
|
Еси не хотите сами разбираться по ДШ, то почитайте уже разжеванное.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
18.10.2018, 01:37
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Странная реакция Atmega128
An-SU, теперь переходим к разбору кода с открытыми DS, системой команд, комментируя в коде желаемое и пытаясь выяснить соответствие написанного в командах требуемому.
При вопросах переходим к оставшимся в списке документов для использованного камня по нужной/близкой тематике…
Когда этот процесс не приводит к желаемому - публикуем код, со всеми комментариями по процессу его написания…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:51.
|
|