Шим на Attiny2313

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 147
Зарегистрирован: Вс мар 09, 2014 09:13:00

Сообщение DenChik87 »

Помогите плиз с шимом на ATTINY2313. Хочу чтобы скважность регулировалась при нажатии кнопки. Одна кнопка увеличивает а другая уменьшает. Написал, зашил, а на выходе получил гармошку. Притом что кнопки даже не нажимаю, а скважность то увеличивается то уменьшается сама собой. Подскажите что не так? Вот исходник:

.device ATtiny2313
.include "tn2313def.inc"
.def t1=R16
.def t2=R17
.def t3=R18
.def t4=R19
.def t5=R20
.def t6=r21
;======================
; НАСТРОЙКА ШИМА
Shim: ldi t1,0b11111111 ;настройка порта
out DDRB,t1

out OCR0A,t2 ; заносим "0" в регистр сравнения

ldi t3,0b11000011 ; быстрый шим
out TCCR0A,t3

ldi t4,0b00000001 ; пред делитель =0
out TCCR0B,t4

; КНОПКА
out DDRD,t5 ;порт на ввод

Delay: sbiw Xh:Xl,1 ;задержка
brne delay

in t6,PinD ;считываем порт кнопки
cpi t6,0b00000001
breq Increment ;идем увеличивать скважность если нажата
cpi t6,0b00000010
breq Decrement ;идем уменьшать скважность если нажата
rjmp Delay

Increment: inc t2 ;увеличиваем скважность на 16
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2
inc t2

rjmp Shim

Decrement: dec t2 ;уменьшаем скважность на 16
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2
dec t2

rjmp Shim

End:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15776
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Объяснять долго - ибо надо все заново переднелывать.
Отдельно сам ШИМ, отдельно конопики, отдельно процедура смены параметров.
8)
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 147
Зарегистрирован: Вс мар 09, 2014 09:13:00

Сообщение DenChik87 »

А может у вас есть ссылка на что нибудь похожее. Где можно подглядеть инфу, чтобы разобраться с регулировкой шимки?
Вымогатель припоя
Аватара пользователя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Сообщение zero648 »

; КНОПКА
out DDRD,t5 ;порт на ввод
t5 сначала очистить надо бы
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 147
Зарегистрирован: Вс мар 09, 2014 09:13:00

Сообщение DenChik87 »

Но ведь в регистре t5(R20) изначально ведь и так 0. Вообще в отладчике AVR Studio все работает так как и задумано. А в действительности скважность играет гармошкой сама собой.
Реклама
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

DenChik87 писал(а):Но ведь в регистре t5(R20) изначально ведь и так 0.
Кто Вам такое сказал? В ячейке памяти, коей и является регистр, после включения может быть любое значение. На жаргоне программистов - "мусор". Запомните накрепко - любой регистр или ячейку в ОЗУ, которую Вы используете, сразу после после запуска программы обязательно нужно вначале инициализировать - присвоить какое-то определенное значение.
DenChik87 писал(а):Вообще в отладчике AVR Studio все работает так как и задумано. А в действительности скважность играет гармошкой сама собой.
Конечно, в симуляторе все работает - он ведь использует "виртуальные" регистры, а не настоящие.

Вообще, автор, Ваша программа оформлена безобразно. Для такого примитива, как у Вас, конечно, сойдет, но если Вы хотите научиться писать серьезные программы, Вам обязательно нужно учиться правильному стилю. Где таблица векторов? Где инициализация указателя вершины стека?
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 147
Зарегистрирован: Вс мар 09, 2014 09:13:00

Сообщение DenChik87 »

Понятно теперь буду знать :idea: Но тем не менее в t5 записал значение 0 но положение дел это никак не изменило, на выходе моего примитива все та же картина :? А со стилем конечно наверно пока никак я ведь только учусь и если подскажете что почитать дабы встать на путь истинный буду рад
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

DenChik87 писал(а):Но тем не менее в t5 записал значение 0 но положение дел это никак не изменило, на выходе моего примитива все та же картина :?
Схему можно увидеть?
DenChik87 писал(а):А со стилем конечно наверно пока никак я ведь только учусь и если подскажете что почитать дабы встать на путь истинный буду рад
Вот в этой теме я подробно писал об этом.
Оформление таблицы векторов, обязательно инициализация указателя вершины стека. Даташит на контроллер Вы изучили?
Встал на лапы
Аватара пользователя
Сообщения: 147
Зарегистрирован: Вс мар 09, 2014 09:13:00

Сообщение DenChik87 »

Да без всякой схемы я питание подал и посмотрел осцилографам что на 14-ой ножки, а там скважность сама собой увеличивается до максимума а затем уменьшается подобно гармошки
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Сделайте питание контроллера от батарейки и управляйте через оптрон.
Ответить

Вернуться в «AVR»