Чудит отладчик AVR Studio

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Аватара пользователя
Rolex
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вс янв 13, 2008 22:32:13

Чудит отладчик AVR Studio

Сообщение Rolex »

имеется тини 2313v (от кварца на 4 мгц). хочу использовать его 16-бит таймер для быстрого шима на ножке OC1A(PB3), для чего собрал типовую схемку с контроллером и драйвером l293, коим управляю с помощью ножки OC1A(PB3) и земли. Не работает - в смысле не получается изменять скорость моторчика,ну или напряжение на ножке контроллера. В отладчике авр студио нашел такую "непонятку" - записываю в 16 битный регистр сравнения OCR1A число более 1024- и в режиме отладки оно сначала записывается ,например 30000(DEC),но потом перезаписывается на какую то ахинею всегда менее 1024,если записываю изначально число менее 1024 - все нормально. Шим настроил на сравнение в каждом цикле с OCR1A , уменьшил частоту таймера в 1024 раз по сравнению с контроллером ()

Код: Выделить всё

        ldi temp ,LOW (RAMEND)
   out SPL ,temp

   ldi ZL, LOW (MegaArray*2)
   ldi ZH , HIGH  (MegaArray*2)

        ldi XH, 0xFF       ;записываем число от 0 до 65535 для сравнения с TCNT таймера ,конкретно сейчас максимальное 65535
   out OCR1AH,XH
   ldi XL, 0XFF       
   out OCR1AL,XL      


       ldi temp,0b11100001   ;разрешить прерывание компаратора таймера 0 и 1
       out TIMSK,temp
   
       ldi temp,0b00011101    ;настраиваем таймер на 4МГц/1024 тактов в секунду, 65000 за 16 секунд, а также fastpwm
       out TCCR1B,temp
   
    ldi temp,0b10000011    ;WGM13:0 = 15  (COMnx1:0 = 2),дабы сравнивать TCNT и OCR1A
    out TCCR1A,temp       
                

В чем дело то???меня этот шим уже отчаивает.
Аватара пользователя
Rolex
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вс янв 13, 2008 22:32:13

Re: Чудит отладчик AVR Studio

Сообщение Rolex »

ничерта не врубаюсь, если убрать TCCR1A то OCR1A уже не сбрасывается, где то досадная ошибка. Может у кого нить есть типовой код на ассемблере по быстрому шиму ?
Аватара пользователя
Rolex
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вс янв 13, 2008 22:32:13

Re: Чудит отладчик AVR Studio

Сообщение Rolex »

Кажется я неправильно перевел даташит!!=(((


Вот ключевые выдержки из него для быстрого шима:

1."In non-inverting Compare Output mode, the Output Compare (OC1x) is set on
the compare match between TCNT1 and OCR1x, and cleared at TOP"

"в неинвентированном режиме ножка OC1x устанавливается при совпадении TCNT1 и OCR1x ,очищается в TOP"

2."The counter counts from BOTTOM to TOP then restarts from BOTTOM"
"Счетчик считает от начала(BOTTOM) до конца(TOP) затем перезапускается заново"

3."In fast PWM mode the counter is incremented until the counter value matches either one of the
fixed values 0x00FF, 0x01FF, or 0x03FF (WGM13:0 = 5, 6, or 7), the value in ICR1 (WGM13:0 =
14), or the value in OCR1A (WGM13:0 = 15)"

"в быстром режиме шим счетчик увеличивается пока его значение не совпадет с одним из
фиксированных значений 0x00FF, 0x01FF, or 0x03FF (WGM13:0 = 5, 6, or 7),регистром ICR1 (WGM13:0
=14) или регистром OCR1A (WGM13:0 = 15 - что мне и нужно)" - это так мы задаем TOP."


4."The PWM waveform is generated by setting (or clearing) the OC1x Register at
the compare match between OCR1x and TCNT1, and clearing (or setting) the OC1x Register at
the timer clock cycle the counter is cleared (changes from TOP to BOTTOM)."

"ШИМ формируется (waveform) установкой(или сбросом) регистра OC1x при совпадении OCR1x и TCNT1,
и очистке(или установке) регистра OC1x при сбросе таймера(в Bottom "



Похоже я настраивал режим когда TOP=OCR1A (WGM13:0 = 15), и пытался в OCR1A записать 16 бит число, но больше 0x03FF не записывалось.-Почему??!!
А гланное как вообще работает этот вариант шима?,куда записать число сравнения с TCNT1,если
OCR1A УЖЕ ЗАНЯТ как TOP?? Варианты -ICR1 или OCR1B ?


п.с.
By using ICR1, the OCR1A Register is free to be used for generating a PWM output on OC1A. когда используем ICR1 для опеределения TOP можно смело юзать OCR1A для шима,это мне понятно)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Чудит отладчик AVR Studio

Сообщение ARV »

прочитайте кроме даташита еще хелп студии про ограничения отладчика :) если я не ошибаюсь, отладчик не эмулирует режимы ШИМ вообще :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Rolex
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вс янв 13, 2008 22:32:13

Re: Чудит отладчик AVR Studio

Сообщение Rolex »

Хорошо проверю,а если конкретно насчет режима TOP=OCR1A (WGM13:0 = 15), как он должен работать то?
Аватара пользователя
Rolex
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вс янв 13, 2008 22:32:13

Re: Чудит отладчик AVR Studio

Сообщение Rolex »

Похоже разобрался: при WGM13:0 = 15 используем в качестве регистра сравнения OCR1B, TOP OCR1A; еще лучше WGM13:0 =14 и в качестве регистра сравнения OCR1A/B, TOP ICR1 ,а самый лучший вариант поставить TOP 0x00FF, 0x01FF, or 0x03FF (WGM13:0 = 5, 6, or 7),8-10 бит более чем достаточно для этих говномоторчиков.
Но теперь есть новая проблема,c драйвером L293. На вход IN1 подаю GND(-),на GND1-4 тоже (-), на IN2 ШИМ с OC1A,на Vss, Vs, Enable1 питание +5v.И допустим с OC1A шпарит ШИМ на 2.5-3 V, НО на выходе L293 стабильные дурацкие 4.5V.Но без паники. В свободное время пересоберу все это дело,если не прокатит выложу схему)
Ответить

Вернуться в «Практика»