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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

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
CoSS
 
Сообщения: 5
Зарегистрирован: 01 ноя 2006, 18:27
Откуда: Неизвестно...

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

Сообщение ALHIMIK » 03 сен 2009, 14:51

мк естественно мега 16
спасибо за развёрнутый ответ :Yahoo!:
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

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

Сообщение blindman » 05 сен 2009, 16:13

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

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение Duhas » 05 сен 2009, 16:36

по идее это для каждого байта)
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение galex1981 » 08 сен 2009, 00:46

Возникла задача - сделать программную перезагрузку МК. Как проще всего это реализовать?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение blindman » 08 сен 2009, 03:40

Собака + бесконечный цикл.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение dmq » 08 сен 2009, 07:44

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

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

---------

А, собака Blindman'а это и есть ведь watchdog :)
dmq
 
Сообщения: 81
Зарегистрирован: 29 апр 2009, 14:02
Откуда: Екатеринбург
ФИО: Михаил

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

Сообщение EdGull » 08 сен 2009, 08:33

или тупо нажать самому себе ресет
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

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

Сообщение Duhas » 08 сен 2009, 09:01

тупо нажать на электрониксе обсуждали.. пришли к выводу что можно не отвиснуть потом ))) собака рулез )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение avr123.nm.ru » 08 сен 2009, 09:11

galex1981 писал(а):Возникла задача - сделать программную перезагрузку МК. Как проще всего это реализовать?
Никак наверно. Нужен расширитель импульса аппаратный.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

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

Сообщение blindman » 08 сен 2009, 09:15

Какого импульса??! Сторожевой таймер - общеизвестное надёжное решение.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

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

Сообщение avr123.nm.ru » 08 сен 2009, 09:21

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

А собака так же как ресет сбрасывает ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

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

Сообщение Duhas » 08 сен 2009, 09:24

ну собака вроде сбрасывает полностью.. есть люди довольные сбросом через собаку и их не мало.. остальным видимо ручной сброс не нужен )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение avr123.nm.ru » 08 сен 2009, 09:45

По даташиту они равнозначны. А аппаратные расширитель импульса сброса в МК встроен :D
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

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

Сообщение blindman » 08 сен 2009, 10:10

Собака так же как и ресет сбрасывает. А при старте через регистр MCUCSR можно определить, что вызвало перезапуск - включение питания, внешний вход сброса, собака или монитор питания.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1