roboforum.ru

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

OC1B в ATmega16

OC1B в ATmega16

Gelios » 06 мар 2011, 13:36

Доброго времени суток . Столкнулся с такой проблемой , не работает OC1B на ATmega16 . Смотрел на разных устройствах , с разными микроконтроллерами . Думал дело в схеме , нет , на других тоже не работает . Паленые контроллеры ? Нет , заменил уже 4 :(
Остается только одно , неправильно поставленные fuse byte . Заливаю программу с помощью USBASP_AVRDUDE_PROG . Вот такие фьюзы выставляю :
DSC00038.JPG


Подскажите где "шляпа" ?
Заранее благодарен .

Re: OC1B в ATmega16

Vovan » 06 мар 2011, 13:46

Что значит "не работает"? подробнее, пожалуйста :wink:

Re: OC1B в ATmega16

dccharacter » 06 мар 2011, 13:58

Gelios, а что, в WinXP клавосочетание Alt+PrntScr отменили? :-)

Re: OC1B в ATmega16

Gelios » 06 мар 2011, 14:01

Код: Выделить всёРазвернуть
$regfile = "m16def.dat"

$crystal = 16000000

$baud = 9600

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

Config Pinc.6 = Output : Drl Alias Portc.2                  'ногу сконфигурировали как выход и обозвали Drl

Config Pinc.7 = Output : Drr Alias Portc.3                  'ногу сконфигурировали как выход и обозвали Drr

Config Pind.4 = Output                                      'ногу ШИМа левого движка сконфигурировали как выход

Config Pind.5 = Output                                      'ногу ШИМа правого движка  сконфигурировали как выход

Dim A As Integer

Dim Speed As Byte : Speed = 250

Enable Interrupts

Waitms 200

Do
Drr = 1

Drl = 0

Speed = 0

For A = 10 To 200 Step 10

  Speed = A

  Pwm1b = Speed : Pwm1a = Speed

  Waitms 500

  Next A

For A = 200 To 10 Step -10

   Speed = A

   Pwm1b = Speed : Pwm1a = Speed

   Waitms 500

   Next A

   Drl = 1

   Drr = 0

   Speed = 0

For A = 10 To 200 Step 10

    Speed = A

    Pwm1b = Speed : Pwm1a = Speed

    Waitms 500

    Next A

    For A = 200 To 10 Step -10

    Speed = A

    Pwm1b = Speed : Pwm1a = Speed

    Waitms 500

    Next A

Loop
Для проверки ШИМа брал такую нехитрую программу , позаимствована у SMT . По идее робот должен крутится вот как тут http://roboforum.ru/forum88/topic5733-195.html Да , крутит , но только в одну сторону , когда должен крутить в другую , он просто стоит на месте , и потом начинает крутить опять в туже сторону , которую крутил ранее . Оценив ситуацию я пришёл к выводу что не работает OC1B , так как с такими же фьюзами , не хотел запускаться таймер ( на 36 kHz ) для ИК бампера

Gelios, а что, в WinXP клавосочетание Alt+PrntScr отменили? :-)
Не отменили , просто фото было уже на компе :wink:

Re: OC1B в ATmega16

avr123.nm.ru » 06 мар 2011, 14:30

В PROTEUS посмотрите, и если нет осцила то понизьте частоту ШИМ и посмотрите через звуковой вход в звук редакторе.

Re: OC1B в ATmega16

Gelios » 06 мар 2011, 14:57

Моя ошибка , не досмотрел :oops: . К осциллографу подключал сигнал есть . Перемычку поставить забыл :D


Rambler\'s Top100 Mail.ru counter