roboforum.ru

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

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

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

regenerator » 03 июн 2008, 17:05

avr123.nm.ru писал(а):1) Нужен еще оператор присваивания =

Тогда так:
PORTB ~ = 0

avr123.nm.ru писал(а):Подробно - соединение UART - rs232 - COM порт ПК - http://avr123.nm.ru/z4.htm и /z5.htm

Тогда понятно, почему я не понял. Я ещё только до 2-го задания дошёл :pardon: (их же, на сколько я понял нужно выполнять последовательно. Или это не обязательно?)

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

avr123.nm.ru » 03 июн 2008, 18:02

regenerator писал(а):
avr123.nm.ru писал(а):1) Нужен еще оператор присваивания =

Тогда так:
PORTB ~= 0 ;


Угу ! или PORTB = ~ PORTB; или PORTB ^= 255;

regenerator писал(а): я понял нужно выполнять последовательно. Или это не обязательно ?

Лучше последовательно. В каждой задаче есть что-то новое.

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

Master » 04 июн 2008, 09:29

Что-то я не понял, вот выдержка из описания Меги 16
"Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения
Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения
Счетчик реального времени с отдельным генератором"
Так вот, что это за счетчик реального времени и где его настройки в CVavr, или это я гоню?

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

loid » 04 июн 2008, 11:49

где можно почитать, на какой оператор или функцию, сколько времени затрачивает чип на обработку

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

Myp » 04 июн 2008, 12:07

в авр практически все команды выполняются за 1 такт(список есть, например в книжках)
но это асмовские команды

если программа написано например на си... нужно её откомпилировать, и открыть полученый файл асма и там уже посчитать скока асмовских команд получается из одной твоей функции
ну и дальше калькулятор
частоту процессора знаем(число инструкций в секунду) асм строчки считать умеем


или ещё вариант написать программу и измерить в симуляторе

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

Victorovych » 04 июн 2008, 12:10

AVR Insruction set Summary :D

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

avr123.nm.ru » 04 июн 2008, 12:14

Master писал(а):что это за счетчик реального времени

Почитай русский даташит ATmega128 на http://avr123.nm.ru/02.htm "Устройство AVR"

Master писал(а):где его настройки в CVavr ?

Наверно в мастере на ярлыке соотв. таймера.

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

Master » 04 июн 2008, 15:25

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

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

loid » 04 июн 2008, 19:35

Myp писал(а):в авр практически все команды выполняются за 1 такт(список есть, например в книжках)
но это асмовские команды

если программа написано например на си... нужно её откомпилировать, и открыть полученый файл асма и там уже посчитать скока асмовских команд получается из одной твоей функции
ну и дальше калькулятор
частоту процессора знаем(число инструкций в секунду) асм строчки считать умеем


или ещё вариант написать программу и измерить в симуляторе


Я вот о чём. У меня энкодер на колесе, но с ним проблема. При малых оборотах на ножке принимаю сигналы 0 и 1, а вот если обороты увеличить, даже не много, никаких сигналов не вижу. Думаю может чип не справляется со скоростью. (ATMEGA 16 - 8Mhz) Схема проста до безобразия. На одну ножку поступают сигналы, на другой смотрю по светодиоду есть ли 0 или 1 на ножке. Как говорил на малых оборотах диод маргает (частота примерно 25-30 герц), когда немного повышу - маргает через раз. Немного ещё увеличиваю - диод молчит. По началу подумал что на глаз не видно моргает ли. Проверил программно поступают ли сигналы - их не было.
Сам цикл не большой: пару счётчиков и несколько операторов IF. Я думаю может условия слишком трудоёмки.

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

Кирилл » 04 июн 2008, 19:57

Должен успевать справляться. Заведи энкодер на прерывание по спаду фронта, может поможет.

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

avr123.nm.ru » 04 июн 2008, 20:44

loid писал(а):У меня энкодер на колесе, но с ним проблема.
Схема проста до безобразия.


Нарисуй или опиши что как подключено.

loid писал(а):может чип не справляется со скоростью. (ATMEGA 16 - 8Mhz).


Да он то наверняка справляется если прога верная.

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

loid » 05 июн 2008, 04:28

Код: Выделить всёРазвернуть
r=15;
perr=0;
poll=PINC.0;
polr=PINC.1;
while (1)         
      {
tmr++;
  if(tmr>9000){tmr=9000;}
clk++;
  if(clk>30){clk=0;pwm++;if(pwm>30){pwm=0;}}   //ШИМ
  if (polr!=PINC.0){if (polr==0 & PINC.0==1){perr=1;PORTA.4=1;} // индикатор того что энкодер прошел одно деление
                 polr=PINC.0; } else {PORTA.4=0;}                             // и выводим результат на светодиод
  if (perr==1){perr=0;tmr=0;}
if(tmr>2000){PORTA.5=1;} else{PORTA.5=0;}
if(pwm<r){PORTA.0=1;}else{PORTA.0=0;} // вращаем колесо
            };
      }
Вложения
roll.JPG
roll.JPG (12.18 КиБ) Просмотров: 2744

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

avr123.nm.ru » 05 июн 2008, 09:30

Схема наверняка неправильная (я бы сказал "бредоавя"). Что за фотоприемник ? Модель ? Даташит есть ?

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

loid » 05 июн 2008, 10:51

Почему бредовая? Считаю чем проще - тем лучше. Что тут ещё можно нагромоздить, да и зачем. :roll: Излучатель и приёмник это оптопара из мыши. ДатаШита на неё нет.

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

Myp » 05 июн 2008, 11:03

и зачем же вы сигнал с оптопары ещё транзистором усилить пытаетесь?
КАК в самой мышке эта оптопара подключена?
сделали бы точно также...


Rambler\'s Top100 Mail.ru counter