roboforum.ru

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

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

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

Denexp » 06 июл 2009, 00:44

Вот это логическое "и" не работает с первого разу. :o

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

dmq » 07 июл 2009, 09:05

Собираю AVR910 от Протоса, мегу8 взял в TQFP чтоб все было маленьким и вставлялось сразу в USB разъем без лишних проводов. Так вот, все готово, осталось прошить мегу8. И тут я встал... Есть "5 проводков" с резисторами (без буфера), мегу 16 несколько раз им шил. Подключаюсь к MISO, MOSI, RST, SCK, подаю питание (втыкаю платку AVR910 в USB), меряю - питание есть. Поня ничего не видит и не слышит. Ладно, по схеме питание МК снижено до 3,6В, замкнул диоды чтобы временно было 5В - все равно никак. Перемычку на ресет (self, target) разумеется ставлю в "self".
Ошибка наверняка какая-то "чайная", но все же ткните носом пожалуйста. Единственное очевидное отличие меги8 от меги16 в том что Reset совмещен с PC6 (ну не бред ли? ), так и шут бы с ним, все равно PC6 не используется...

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

=DeaD= » 07 июл 2009, 09:07

Длина 5 проводков какая?

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

dmq » 07 июл 2009, 09:16

Не больше 30см примерно. Т.е. никаких "хитростей" и особенностей нет и только искать ошибки монтажа?

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

=DeaD= » 07 июл 2009, 09:17

Да вроде, схему прозвонить, если что - можете сюда её выложить + фотки устройства с 2 сторон.

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

dmq » 07 июл 2009, 09:24

Ясно, спасибо. Еще поколупаюсь и если что - снова помощи попрошу :)

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

rig » 07 июл 2009, 09:46

вообще то есть специальная тема про этот программатор.
dmq писал(а):Единственное очевидное отличие меги8 от меги16 в том что Reset совмещен с PC6 (ну не бред ли? )


If the RSTDISBL Fuse is unprogrammed, PC6 is used as a Reset input.

нет не бред

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

dmq » 07 июл 2009, 19:50

=DeaD= писал(а):Да вроде, схему прозвонить

Убрал всякие болтающиеся хвосты, уменьшил длину "пяти проводков" и все заработало.

Rig, ясно, буду знать.

Всем спасибо :)

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

avr123.nm.ru » 07 июл 2009, 20:24

Дак я ж не зря вам давал линк на "Все о прошивке AVR" - http://avr123.nm.ru/07.htm - там я рекомендую не более 15-20 См проводки делать. Кстати все это есть на ПЕРВОЙ страничке топика.

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

mitart » 16 июл 2009, 18:07

Странная вещь у меня творится :o
Во вложении - программа для машинки. Пытаюсь в процедуры отъезда для замыкания бамперов и обнаружения препятствия ик бампером добавить задержку,чтобы избежать дребезга.(delay_ms(500); в коде пометил, куда вставляю). Программа перестает работать(на PA2 постоянный лог.0, поворотный и тяговый двигатели переключаются часто туда-сюда ), хотя с этим кодом, который во вложении всё прекрасно работает(при замыкании бампера или при обнаружении препятствия иком, начинается очень частое переключение, то есть все работает как надо). Подскажите пожалуйста, как ввести задержку и что у меня не правильно?
Вложения
new_ir.hex
(1.32 КиБ) Скачиваний: 242

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

avr123.nm.ru » 16 июл 2009, 19:34

Прикладывайте пожалуйста ПРОЕКТ уеликом.

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

mitart » 16 июл 2009, 20:20

хекс файл выложил нечайно, на автомате его выбрал вместо с
Вложения
new_IR.rar
(30.31 КиБ) Скачиваний: 7

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

avr123.nm.ru » 16 июл 2009, 21:41

Там нет ни чего для симулятора - не знаю как проверить что не работает с паузами.
Компилится нормально с паузами.

А перед переменными которые в прерываниях изменяются луче писать модификатор: volatile

volatile unsigned int ir_counter=0;

Пояснения на страничке "Язык Си для микроконтроллеров AVR" - стр. 5 курса по AVR - первый пост этого топика.

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

SiemX » 20 июл 2009, 14:16

Не могу настроить компаратор в тини 2313
Код: Выделить всёРазвернуть
// Analog Comparator initialization
// Analog Comparator: On
// Digital input buffers on AIN0: Off, AIN1: Off
DIDR=0x03;
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x00;


#asm("sei")
while(1){

if(ACSR==0x00){PORTA.0=1; PORTA.1=0; }else { PORTA.0=0; PORTA.1=1;  }
}



К порту A подключен двухцветный диод и всегда горит тот цвет что в else задается. К входам подключены резисторные делители в которых фоторезисторы.
Ножки порта с компаратором сделаны входами без подтяжки. Что я нитак делаю, почему всегда выполняется тот код что в else ?

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

blindman » 20 июл 2009, 14:48

Потому что в ACSR содержится флаг прерывания, который устанавливается при срабатывании компаратора. Так как прерывания от компаратора не разрешены , и программно этот флаг тоже не сбрасывается, после первого срабатывания компаратора в этом регистре никогда не будет 0. Проверять надо не весь регистр, а только бит ACO.


cron
Rambler\'s Top100 Mail.ru counter