ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
- Реклама
- Сообщения: 2
- Зарегистрирован: Пн сен 21, 2009 19:47:33
осмелюсь порекомендовать книжечку "Программируемые роботы" Дж. Вильямс там описывается сборка с нуля станка с чпу!
опыт прямо пропорционален выведенному из строя оборудованию!
нерешаемых задач не бывает, бывает мало времени!
нерешаемых задач не бывает, бывает мало времени!
Господа, нужна помощь. собираю схему из обучалки бегущего огня
http://radiokot.ru/start/mcu_fpga/avr/13/ вот. но 8 каналов мне мало и я решил задействовать порт D
добавил строки
типа включил порт D
и на вывод
получилось что порты работают одинаково, что D что B один в один. но я хотел вовсе не это. я хочу чтобы огонек не повторялся а бежал циклически. мне нужно наверное что то с массивом сделать...что думаете?
http://radiokot.ru/start/mcu_fpga/avr/13/ вот. но 8 каналов мне мало и я решил задействовать порт D
добавил строки
Код: Выделить всё
inc ResCnt ;инкремент счетчика сбросов
ldi Temp,0b11111111 ;настройка портa
out DDRB,Temp
ldi Temp,0b11111111 ;настройка портa
out DDRD,Temp
ldi Temp,0b01000000 ;разрешить прерывание компаратора
out TIMSK,Temp
и на вывод
Код: Выделить всё
Init: ldi Temp1,0 ;загрузить нач. значение
rjmp SelectArray
Output: out PortB,Temp ;вывод в порт
out PortD,Temp
reti не, ну между коллектором и эмиттером ток ох*енный
- Реклама
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
получаем вот что:Код: Выделить всё
Init: ldi Temp1,0 ;загрузить нач. значение rjmp SelectArray Output: out PortB,Temp ;вывод в порт out PortD,Temp reti
Код: Выделить всё
Init: ldi Temp1,0 ;загрузить нач. значение
rjmp SelectArray
Output: out PortB,Temp ;вывод в порт В регистр Temp
out PortD,Temp ;вывод в порт D регистр Temp
reti Код: Выделить всё
Output: out PortB,Temp ;вывод в порт В регистр Temp
out PortD,Temp1 ;вывод в порт D регистр Temp1
reti Код: Выделить всё
ldi ZL, Low(Array*2)
ldi ZH, HIGH(Array*2)
add ZL, "сдвиг"
lpm temp, Z+
lpm temp1, Z
ret
ARRAY:
.db 0b10000000, 0
.db 0b01000000, 0
;...........
;...........
;...........
;...........
.db 0b00000001, 0
.db 0, 0b10000000 Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
компилятор ругается на строчку
Pooher, скажите, почему в массиве 8 чисел, а не 15? мы же используем 15 портов...
Код: Выделить всё
add ZL, "сдвиг" не, ну между коллектором и эмиттером ток ох*енный
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
В массиве не 8 чисел, просто строками ;....
показано, что между указанными, есть числа. Ну не писать же мне их все, я пояснил смысл.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
хорошо, вместо слова сдвиг надо писать число? я недавно начал программировать, не смейтесь
про восемь чисел я имел ввиду что .db 0b10000000, 0 это восемь
а к примеру .db 0b100000000000000, 0 это пятнадцать. или неверно? у нас же будет задействовано все 15 портов?
про восемь чисел я имел ввиду что .db 0b10000000, 0 это восемь
а к примеру .db 0b100000000000000, 0 это пятнадцать. или неверно? у нас же будет задействовано все 15 портов?
не, ну между коллектором и эмиттером ток ох*енный
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
0b10000000, 0 - это 0b10000000, 0b00000000, т. е. 2 байта. 1-й байт пишется в один порт, второй-во второй.
затем вызываем подпрограмму чтения массива, затем подпрограмму вывода в проты, после чего идёт задержка (если не заморачиваться с прерываниями) и запись другово числа в tmp.
А вообще, срочно в обучалку, и методично, по пунктам...
надо писать таквместо слова сдвиг надо писать число?
Код: Выделить всё
ldi tmp, 2 ; ваше число(здесь 2) заисать в РОН tmp
А вообще, срочно в обучалку, и методично, по пунктам...
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
товарищ Pooher уже все объяснил, что непонятного в его коде или словах? довольно простой алгоритм. как вариант, без массивов, завести два регистра, которые будут постоянно выводиться в порты, а через определенные промежутки времени в этих двух регистрах циклично сдвигается логическая единичка. как вам?
Ставим плюсы: )
- Сообщения: 16
- Зарегистрирован: Ср июл 29, 2009 23:09:41


