AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
22.11.2012, 18:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.10.2009
Адрес: г. Алексин
Сообщений: 1,162
Сказал спасибо: 938
Сказали Спасибо 157 раз(а) в 92 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
__________________
Экономика учит нас, что не более 4-5% населения способны к предпринимательской деятельности…Чего же в них такого особенного? Другая статистика говорит, что дрочат 95% населения… По-моему всё очевидно…
|
|
|
|
22.11.2012, 18:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.10.2009
Адрес: г. Алексин
Сообщений: 1,162
Сказал спасибо: 938
Сказали Спасибо 157 раз(а) в 92 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
И почему "for (i=5000;i›0;i--);" не задерживает программу? ...По крайней мере мне так показалось, что i=5000, что i=500 - одинаково.
__________________
Экономика учит нас, что не более 4-5% населения способны к предпринимательской деятельности…Чего же в них такого особенного? Другая статистика говорит, что дрочат 95% населения… По-моему всё очевидно…
|
|
|
|
22.11.2012, 18:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.10.2009
Адрес: г. Алексин
Сообщений: 1,162
Сказал спасибо: 938
Сказали Спасибо 157 раз(а) в 92 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
А в AVR-мк есть "требование прерывания от внешки" ?
__________________
Экономика учит нас, что не более 4-5% населения способны к предпринимательской деятельности…Чего же в них такого особенного? Другая статистика говорит, что дрочат 95% населения… По-моему всё очевидно…
|
|
|
|
22.11.2012, 19:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Пара внешних прерываний с настраиваемыми фронтами, и пинчейндж - у последних АВР типа тини13 или мега48 любая нога может вызывать прерывание из любого режима сна
|
|
|
|
22.11.2012, 19:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Сообщение от omercury
|
Saadov, мож так?
|
В принципе уже ответили про 0
Сообщение от rubel
|
в прерывание при достижении таймером её значения. А там уже выполняешь нужные действия. В AVR таких нет разве?
|
Я привел реализацию нескольких независимых задержек на одном таймере. Есть такие таймеры в AVR, но тогда получается, что задержка одна.
|
|
|
|
22.11.2012, 19:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Сообщение от ascerdfg
|
И почему "for (i=5000;i›0;i--);" не задерживает программу? ...По крайней мере мне так показалось, что i=5000, что i=500 - одинаково.
|
А на какой частоте работает МК? Посчитайте время выполнения это цикла при частоте МК, например 8 МГц, оно для вас не будет заметным, что при 5000, что при 500.
|
|
|
|
22.11.2012, 20:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.10.2009
Адрес: г. Алексин
Сообщений: 1,162
Сказал спасибо: 938
Сказали Спасибо 157 раз(а) в 92 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Сообщение от niXto
|
Пара внешних прерываний с настраиваемыми фронтами, и пинчейндж - у последних АВР типа тини13 или мега48 любая нога может вызывать прерывание из любого режима сна
|
А при выполнении программы? Не дожидаясь таймера...
__________________
Экономика учит нас, что не более 4-5% населения способны к предпринимательской деятельности…Чего же в них такого особенного? Другая статистика говорит, что дрочат 95% населения… По-моему всё очевидно…
|
|
|
|
22.11.2012, 20:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.10.2009
Адрес: г. Алексин
Сообщений: 1,162
Сказал спасибо: 938
Сказали Спасибо 157 раз(а) в 92 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Сообщение от Saadov
|
А на какой частоте работает МК? Посчитайте время выполнения это цикла при частоте МК, например 8 МГц, оно для вас не будет заметным, что при 5000, что при 500.
|
1 мгц: 5мс и 0,5 мс в минимуме. Стоит эта задержка при инкрементации шим. Если ставлю вместо "for (i=5000;i›0;i--);" "_delay_ms(5)" то плавно разгорается. При "for (i=5000;i›0;i--);" - махом, но дребезгом кнопки можно поймать промежуточное значение. Может компилятор выкидывает "for (i=5000;i›0;i--);" как бессмыслицу?
__________________
Экономика учит нас, что не более 4-5% населения способны к предпринимательской деятельности…Чего же в них такого особенного? Другая статистика говорит, что дрочат 95% населения… По-моему всё очевидно…
|
|
|
|
22.11.2012, 22:25
|
|
Заблокирован
Регистрация: 31.05.2011
Адрес: Ташкент
Сообщений: 2,753
Сказал спасибо: 971
Сказали Спасибо 1,144 раз(а) в 692 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Сообщение от ascerdfg
|
Зачем переучиваться?
|
Чтоб для начала научится
ИМХО сначала надо понять суть проистекающих процессов
не отвлекаясь на синтаксис,с возможностью проиграть это все в программе видя каждый процесс.
ну а прерывания вещчь конечно удобная
но пока на моем уровне задач увидел прок только в прерывании по частоте
работы мк с делителем (появляется возможность подвязать часы или таймер к реальным промежуткам времяни)
да и прерывания по изменению порта В (кнопки на этот порт вешать)иначе придется держать кнопку до тех пор пока программа не
доберется до переменной на которую повешен порт с кнопкой.
ps Впрочем так же как и вы,пока разбираюсь...
|
|
|
|
22.11.2012, 23:35
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Сообщение от ascerdfg
|
И почему "for (i=5000;i›0;i--);" не задерживает программу? ...По крайней мере мне так показалось, что i=5000, что i=500 - одинаково.
|
Десятки раз уже писали про аналогичное. Скорее всего, ваш компилятор видит, что вы занимаетесь ерундой (по научному в результате код ничего не делает) и оптимизирует (выбрасывает) эту конструкцию целиком. Чтобы этого не происходило объявите переменную, как volatile:
for (volatile uint16_t i=5000;i›0;i--);
|
|
|
Сказали "Спасибо" SasaVitebsk
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:34.
|
|