roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллер AVR начинающим - общие вопросы

CoSS » 02 сен 2009, 23:59

ALHIMIK
Прежде всего неплохо бы указать МК, если в Classic/Tiny/Mega TWI более или менее совместим, то же самое не относится к Xmega.

twi_status = (TWSR & (~ ( (1<<1) | (1<<0) ) ) );

Технически правильно, но есть вполне справедливое замечание входящее в десятку заповедей программиста любого урповня - никаких констант в коде. В итоге:

Код: Выделить всёРазвернуть
twi_status = (TWSR & (~ ( (1 << TWPS1) | (1 << TWPS0) ) ) );


Либо через макрос:

Код: Выделить всёРазвернуть
#define TWI_GetStatus()  (TWSR & 0xF8)  //0xF8 - TWS7..TWS3

Re: МикроКонтроллер AVR начинающим - общие вопросы

ALHIMIK » 03 сен 2009, 14:51

мк естественно мега 16
спасибо за развёрнутый ответ :Yahoo!:

Re: МикроКонтроллер AVR начинающим - общие вопросы

blindman » 05 сен 2009, 16:13

В документации на МК AVR указывается, что EEPROM держит до 100000 циклов стирания-записи. Запись побайтовая. Значит ли это, что можно 100000 раз перезаписывать каждый отдельный байт, или 100000 - это общее количество циклов перезаписи?

Re: МикроКонтроллер AVR начинающим - общие вопросы

Duhas » 05 сен 2009, 16:36

по идее это для каждого байта)

Re: МикроКонтроллер AVR начинающим - общие вопросы

galex1981 » 08 сен 2009, 00:46

Возникла задача - сделать программную перезагрузку МК. Как проще всего это реализовать?

Re: МикроКонтроллер AVR начинающим - общие вопросы

blindman » 08 сен 2009, 03:40

Собака + бесконечный цикл.

Re: МикроКонтроллер AVR начинающим - общие вопросы

dmq » 08 сен 2009, 07:44

galex1981 писал(а):Возникла задача - сделать программную перезагрузку МК. Как проще всего это реализовать?

Я бы очистил стек и переход на метку reset, ну или какая в данном случае метка начала прораммы. Стек очищать на случай если "сброс" производится из процедуры и не оставалось лишних адресов возврата.
Или например включить watchdog и не сбрасывать его счетчик - тоже ведь помоему перезагрузиться должен?

---------

А, собака Blindman'а это и есть ведь watchdog :)

Re: МикроКонтроллер AVR начинающим - общие вопросы

EdGull » 08 сен 2009, 08:33

или тупо нажать самому себе ресет

Re: МикроКонтроллер AVR начинающим - общие вопросы

Duhas » 08 сен 2009, 09:01

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

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 08 сен 2009, 09:11

galex1981 писал(а):Возникла задача - сделать программную перезагрузку МК. Как проще всего это реализовать?
Никак наверно. Нужен расширитель импульса аппаратный.

Re: МикроКонтроллер AVR начинающим - общие вопросы

blindman » 08 сен 2009, 09:15

Какого импульса??! Сторожевой таймер - общеизвестное надёжное решение.

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 08 сен 2009, 09:21

Я про расширитель импульса сброса от ноги до нужной длины импульса для ресет.

А собака так же как ресет сбрасывает ?

Re: МикроКонтроллер AVR начинающим - общие вопросы

Duhas » 08 сен 2009, 09:24

ну собака вроде сбрасывает полностью.. есть люди довольные сбросом через собаку и их не мало.. остальным видимо ручной сброс не нужен )

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 08 сен 2009, 09:45

По даташиту они равнозначны. А аппаратные расширитель импульса сброса в МК встроен :D

Re: МикроКонтроллер AVR начинающим - общие вопросы

blindman » 08 сен 2009, 10:10

Собака так же как и ресет сбрасывает. А при старте через регистр MCUCSR можно определить, что вызвало перезапуск - включение питания, внешний вход сброса, собака или монитор питания.


cron
Rambler\'s Top100 Mail.ru counter