Не получается настроить D порт микроконтроллера tiny2313

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 4
Зарегистрирован: Ср дек 24, 2008 16:10:17

Сообщение Deneb »

Наверно я креведка...
Задачу я поставил перед собой такую - есть мк тини2313 у него порт Б настроен на вывод, прошит он одной из версий "мигалки", украденой с вашей обучалки.
Есть ещё один тини2313, я хотел у него настроить порт Д на прием, так, чтобы им мог управлять первый тини (cм картинку)

вот прошивка u2

.include "C:\AVR\APPNOTES\2313def.inc"

.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def Temp5=R21

.cseg
.org 0

ldi Temp,RamEnd ;èíèöèàëèçàöèÿ ñòåêà
out SPL,Temp

ldi Temp,0b11111111 ;íàñòðîéêà ïîðòîâ B
out DDRB,Temp

ldi Temp,0b00000000 ;íàñòðîéêà ïîðòîâ D
out DDRD,Temp


compare: ldi temp, portD
cpi temp, 0b0000001
breq GO
cpi temp,0b0000001
brne compare





Go: ldi Temp,0b00000001 ;âûâîä íà èíäèêàöèþ
rcall Delay ;âûçîâ ïîäïðîãðàììû çàäåðæêè

ldi Temp,0b00000010 ;âûâîä íà èíäèêàöèþ
rcall Delay ;âûçîâ ïîäïðîãðàììû çàäåðæêè

ldi Temp,0b00000100 ;âûâîä íà èíäèêàöèþ
rcall Delay ;âûçîâ ïîäïðîãðàììû çàäåðæêè

ldi Temp,0b00001000 ;âûâîä íà èíäèêàöèþ
rcall Delay ;âûçîâ ïîäïðîãðàììû çàäåðæêè

ldi Temp,0b00010000 ;âûâîä íà èíäèêàöèþ
rcall Delay ;âûçîâ ïîäïðîãðàììû çàäåðæêè

ldi Temp,0b00100000 ;âûâîä íà èíäèêàöèþ
rcall Delay ;âûçîâ ïîäïðîãðàììû çàäåðæêè

ldi Temp,0b01000000 ;âûâîä íà èíäèêàöèþ
rcall Delay ;âûçîâ ïîäïðîãðàììû çàäåðæêè

ldi Temp,0b10000000 ;âûâîä íà èíäèêàöèþ
rcall Delay ;âûçîâ ïîäïðîãðàììû çàäåðæêè

rjmp compare

;****************************************************
;Çàäåðæêà

Delay: out PortB,Temp

ldi Temp1,0
ldi Temp2,0
ldi Temp3,3

Loop: dec Temp1
brne Loop

dec Temp2
brne Loop

dec Temp3
brne Loop

ret

почему u2 не запускает на себе мигалку, ведь должен?
пс: ассемблер плохо, очень плохо знаю, но казалось что написано правильно...
Вложения
Вот трабл.JPG
(192.74 КБ) 444 скачивания
Реклама
Родился
Сообщения: 4
Зарегистрирован: Ср дек 24, 2008 16:10:17

Сообщение Deneb »

Как то сумбурно вышло, и код не форматирован, извиняюсью
Хотя прога очень простая, я думаю ясно будет
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 84
Зарегистрирован: Вт ноя 25, 2008 18:56:41

Сообщение OBIVAN »

compare: ldi temp, portD интересно а что здесь подрозумевается?
я думаю in temp,pind так будет правельней и зачем остальные ножки на землю засадил . :cry: жалко ведь мк
Потрогал лапой паяльник
Сообщения: 327
Зарегистрирован: Пт фев 08, 2008 13:46:03
Откуда: Воронеж

Сообщение pirotehnick »

оно понятно:
compare: ldi temp, portD
Инструкция ldi загружает константу в регистр, в данном случае ты загружаешь адрес порта в регистр.

вместо ldi поставь in
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 84
Зарегистрирован: Вт ноя 25, 2008 18:56:41

Сообщение OBIVAN »

А еще существуют команды поразрядного сравнения для рвв sbic pind,0 пропустить команду если разряд сброшен и sbis наоборот
Реклама
Родился
Сообщения: 4
Зарегистрирован: Ср дек 24, 2008 16:10:17

Сообщение Deneb »

а, спасибо)
Реклама
Родился
Сообщения: 4
Зарегистрирован: Ср дек 24, 2008 16:10:17

Сообщение Deneb »

Фурычит)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»