Перейти к содержанию
bbh_blocked_dnftl

Dx Portal 16-битный таймер на ATmega64A


Рекомендуемые сообщения

Прошу помочь советом!!!

 

 

 

Задача стоит изготовить контроллер с шестиканальным управлением нагрузкой, снимая параметры через АЦП.

 

 

 

Посему был выбран чип ATmega64A.

 

 

 

С программным кодом, АЦП и Т/С №1 проблем нет.

 

 

 

Не могу запустить Т/С № 3 в режим ШИМ на три канала. Причем Proteus моделирует, а в реальной схеме не работает. Может есть какие то подводные камни? Перелопатил даташит - никаких идей....

 

 

 

Прикладываю блок начальной инициации. Заранее благодарю.

 

 

 

.device ATmega64a

.nolist

.include "C:m64adef.inc"

.list

 

 

 

.def temp =R16

 

 

 

.dseg

.cseg

.org 0

jmp RESET

 

 

 

RESET: ;Инициализация

 

 

 

;инициация стека

ldi temp, low(RAMEND)

out SPL, temp

ldi temp, high(RAMEND)

out SPH, temp

 

 

 

;Порт B

ldi temp, 0b11111111 ;Запись числа в регистр R16

out DDRB, temp ;назначение порта B выходом

ldi temp, 0b00000000 ;Запись числа в регистр R16

out PortB, temp ;сброс в 0 состояния порта B

 

 

 

;Порт E

ldi temp, 0b11111111 ;запись числа в регистр R16

out DDRE, temp ;назначение порта E выходом

ldi temp, 0b00000000 ;запись числа в регистр R16

out PortE, temp ;Задание начального состояния порта E

 

 

 

;Порт F (вход АЦП)

ldi temp, 0b00000000 ;запись числа в регистр R16

sts DDRF, temp ;назначение порта F входом

ldi temp, 0b00000000 ;запись числа в регистр R16

sts PortF, temp ;Отключение подтягивающих резисторов порта F

 

 

 

 

; Инициализация АЦП

sbi ADCSRA, ADEN ;АЦП разрешен

cbi ADCSRA, ADATE ;Режим одиночного преобразования АЦП

cbi ADMUX, MUX0 ;Включить

cbi ADMUX, MUX1 ;в АЦП

cbi ADMUX, MUX2 ;только

cbi ADMUX, MUX3 ;вход

cbi ADMUX, MUX4 ;№0

sbi ADMUX, ADLAR ;выравнивание результата АЦП влево

sbi ADMUX, REFS0 ;источник опорного напряжения - напряжение питания

cbi ADCSRA, ADPS0 ;коэфициент деления

sbi ADCSRA, ADPS1 ;частоты преобразования

sbi ADCSRA, ADPS2 ;64

sts ADCSRB, temp

 

 

 

ldi temp, (1<

out TCCR1A, temp

ldi temp, (0<

out TCCR1B, temp

 

 

 

ldi temp, (1<

sts TCCR3A, temp

ldi temp, (0<

sts TCCR3B, temp

 

 

 

;Задание начальной скважности импульсов

 

 

 

ldi temp, 0

out OCR1AH, temp

ldi temp, 128

out OCR1AL, temp

ldi temp, 0

out OCR1BH, temp

ldi temp, 128

out OCR1BL, temp

 

 

 

ldi temp, 0

out OCR1CH, temp

ldi temp, 128

out OCR1CL, temp

ldi temp, 0

sts OCR3AH, temp

ldi temp, 128

sts OCR3AL, temp

ldi temp, 0

sts OCR3BH, temp

ldi temp, 128

sts OCR3BL, temp

 

 

 

ldi temp, 0

sts OCR3CH, temp

ldi temp, 128

sts OCR3CL, temp

 

 

 

jmp START

 

Читать дальше

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...