Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Ответ
Опции темы
Непрочитано 17.12.2014, 15:37   #1
Zionus
Гражданин KAZUS.RU
 
Аватар для Zionus
 
Регистрация: 05.03.2007
Адрес: Kyiv
Сообщений: 711
Сказал спасибо: 128
Сказали Спасибо 537 раз(а) в 159 сообщении(ях)
Zionus на пути к лучшему
По умолчанию Программа из книги.. непонятки

Автор Кравченко А.В. - 10 практических устройств на AVR-микроконтроллерах. Книга 1 (200.

Собсно, сама программа. Есть вопросы, в которых никак не могу разобраться.
1. Зачем он задействовал столько регистров?
2. Зачем он в секции настройки порта загружает в DDRB очищеный tempo, а по-настоящему порт настраивает в секции nStart?
3. Что за плутанная подпрограмма задержки такая?
4. Нафига столько nop и зачем там команды wdr?


.include "D:\Program Files\Atmel\AVR Studio\Appnotes\tn12def.inc"
.def tmp = r16
.def coc = r17
.def vih = r18
.def tempo = r19
.def pir = r22
.def pur = r23
.def par = r20
.def Y = r29
.def X = r21
.def W = r26
.def adr = r0
.def prg1 = r24
.def prg2 = r25



.cseg
.org 0
nop ;rjmp RESET
nop ;rjmp EXT_INT0 прерывание не используется
nop ;rjmp EXT_PIN прерывание не используется
nop ;rjmp TIME_OVF0 прерывание от таймера
nop ;rjmp EE_RDY прерывание от таймера
nop ;rjmp ANA_COMP прерывание не используется


.org 20
;настройка порта В
clr tmp
out DDRB, tmp
out PORTB, tmp ;обнулить порт В
clr pir
clr pur
clr prg1
clr prg2
clr adr

;Начало программы
;сброс всех значений
nStart: nop ;начало программы
ldi coc, $1E ;PB1,РВ2,РВ3,PB4-выходы
out DDRB, coc
nop
in vih, PORTB
cpi vih, $01
breq nul
ldi tempo, $64
rjmp ser
nul: ldi tempo, $34
nop
ser: nop
rcall zader
nop
rcall opros
nop
rjmp nStart

;Подпрограмма задержки включения светодиодов


zader: nop
wdr
clr W
clr X
clr Y
ldi W, $05
ldi X, $F0
dm: nop
dv: nop
wdr
mov Y, tempo
dx: dec Y
brne dx
dec X
brne dv
dec W
brne dm
ret

;Подпрограмма опроса светодиодов
opros: nop
cpi pir, $14
breq prn2
ldi ZH, high(2*prog1)
ldi ZL, Low(2*prog1)
Add ZL, pir
LPM
mov prg1, adr
out PORTB, prg1
inc pir
rjmp got
prn2: nop
cpi pur, $14
breq prn3
ldi ZH, high(2*prog2)
ldi ZL, Low(2*prog2)
Add ZL, pur
LPM
mov prg2, adr
out PORTB, prg2
inc pur
rjmp got
prn3: nop
cpi par, $14
breq nasv
ldi ZH, high(2*prog3)
ldi ZL, Low(2*prog3)
Add ZL, par
LPM
mov prg2, adr
out PORTB, prg2
inc par
rjmp got
nasv: clr pir
clr pur
clr par
clr adr
got: nop
ret


.org $100
prog1:
.DB $00, $02, $12, $18, $1A, $04, $10, $06
.DB $08, $0A

prog2:
.DB $0A, $08, $06, $10, $04, $1A, $18, $12
.DB $02, $00

prog3:
.DB $00, $04, $02, $10, $12, $06, $18, $08
.DB $1A, $0A
.EXIT
Реклама:
Zionus вне форума   Ответить с цитированием
Непрочитано 17.12.2014, 16:09   #2
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,392
Сказал спасибо: 1,976
Сказали Спасибо 1,332 раз(а) в 580 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки.

1) ОЗУ в тини12 нет, потому все в регистрах
2) ХЗ
3) тоже ХЗ.
4) опять ХЗ. Ну нравятся человеку NOPы. WDR вообще непонятно зачем - WDT не включается в программе.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума   Ответить с цитированием
Непрочитано 17.12.2014, 16:20   #3
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,944 раз(а) в 5,991 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки.

Сообщение от nml Посмотреть сообщение
WDR вообще непонятно зачем - WDT не включается в программе.
Если фьюзом включил - надо сбрасывать.
Сообщение от Zionus Посмотреть сообщение
Нафига столько nop
В основном, разделяет метки разных циклов для одного и того же места.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума   Ответить с цитированием
Непрочитано 17.12.2014, 22:45   #4
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки

Сообщение от Zionus Посмотреть сообщение
Собсно
1. см nml
2. Это вообще-то цикл, так что постоянный переинит порта сам по себе странен.
3. Вы попробуйте вставлять код секцией CODE или PHP, может что и изменится?
PHP код:
zadernop
    wdr
    clr W
    clr X
    clr Y
    ldi W
, $05
    ldi X
$F0
dm
nop

dv
:     nop
        wdr
        mov Y
tempo

dx
:         dec Y
            brne dx
        dec X
        brne dv
    dec W
    brne dm
    ret 
три вложенных цикла.
4.а Видимо, любит он ничего не делать...
4.б см. akegor

Выбросьте Вы эту книгу от греха подальше, что-то как-то грустно всё в ней (судя по приведённому).
omercury вне форума   Ответить с цитированием
Непрочитано 18.12.2014, 02:45   #5
AYuM
Прописка
 
Аватар для AYuM
 
Регистрация: 21.04.2009
Адрес: Королёв
Сообщений: 89
Сказал спасибо: 1,054
Сказали Спасибо 34 раз(а) в 27 сообщении(ях)
AYuM на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки

Плохой стиль написания программы для обучения начинающих.
Названия меток и переменных - жуть. Что значат эти пир, пур, пар - лучше уж наф-наф, ниф-ниф, нуф-нуф
А что значит метка сос или, может, кок? Вообще что-то неприличное.
На метке dx: выполняется dec y, назвал бы тогда уж dy: и т.д.

Последний раз редактировалось AYuM; 18.12.2014 в 02:50.
AYuM вне форума   Ответить с цитированием
Непрочитано 18.12.2014, 12:08   #6
shurik_ss
Гражданин KAZUS.RU
 
Регистрация: 15.02.2011
Адрес: Витебск, Беларусь.
Сообщений: 547
Сказал спасибо: 484
Сказали Спасибо 606 раз(а) в 214 сообщении(ях)
shurik_ss на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки

1. См. nml
2. Секция настройки порта, как и секция реакции на прерывания явно выдраны из другой программы. Поэтому и выглядят здесь совсем бредово.
3. Почти нормальная подпрограмма. Убрать НОПы и Выдры, очистку регистров перед загрузкой в них констант - и можно пользоваться.
4. Индусский код (ссылка была на Казусе: http://lurkmore.to/Индусский_код). Если бы студент мне принес курсач с таким кодом, "тройку" не получил бы. Ушел бы переделывать. Ну а когда автор книги (фактически учебника!!!) такое пишет, надо книгу запрещать, изымать из торговой сети, и, самое главное, делать это за счет автора.
shurik_ss вне форума   Ответить с цитированием
Сказали "Спасибо" shurik_ss
Zionus (20.12.2014)
Непрочитано 18.12.2014, 15:52   #7
Zahar
Прописка
 
Аватар для Zahar
 
Регистрация: 29.09.2006
Адрес: Санкт-Петербург, а также Ямал, Амур, Сахалин, Калининград, Краснодар-Анапа, Новый Уренгой...
Сообщений: 129
Сказал спасибо: 90
Сказали Спасибо 45 раз(а) в 24 сообщении(ях)
Zahar на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки

Сообщение от shurik_ss Посмотреть сообщение
1. См. nml
2. Секция настройки порта, как и секция реакции на прерывания явно выдраны из другой программы. Поэтому и выглядят здесь совсем бредово.
3. Почти нормальная подпрограмма. Убрать НОПы и Выдры, очистку регистров перед загрузкой в них констант - и можно пользоваться.
4. Индусский код (ссылка была на Казусе: http://lurkmore.to/Индусский_код). Если бы студент мне принес курсач с таким кодом, "тройку" не получил бы. Ушел бы переделывать. Ну а когда автор книги (фактически учебника!!!) такое пишет, надо книгу запрещать, изымать из торговой сети, и, самое главное, делать это за счет автора.
Неужто автор из "Клана Кашкарова"???
__________________
Всегда! (политическое кредо...)
Zahar вне форума   Ответить с цитированием
Непрочитано 18.12.2014, 16:24   #8
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,944 раз(а) в 5,991 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки

Сообщение от Zahar Посмотреть сообщение
Неужто автор из "Клана Кашкарова"???
Человек видит по своему. Предполагаю (сей опус не читал), что он включил сторожа, потому и выдры. Если не включать - можно и убрать. Я сторожа использую, потому мне не мешает то, что через одного да каждому глаз колет.
Сильно не всматривался насчет нопов, но то, что видел вставлено для разделения мнемоник меток разных циклов (для большей наглядности), когда их адреса совпадают.
Остальное, видимо, описано в сопровождающем тексте. Что касательно инициализации порта и т.д. - возможно, в силу ряда причин, у человека выработался такой стиль.
В общем, одно и то же один считает вкусным, другой приемлемым, третий мерзкопакостным... "У каждого свой вкус - сказал индус, слезая с обезьяны"(с). А еще у Крылова есть басня про слона-художника.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума   Ответить с цитированием
Непрочитано 20.12.2014, 01:00   #9
Zionus
Гражданин KAZUS.RU
 
Аватар для Zionus
 
Регистрация: 05.03.2007
Адрес: Kyiv
Сообщений: 711
Сказал спасибо: 128
Сказали Спасибо 537 раз(а) в 159 сообщении(ях)
Zionus на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки.

Сообщение от nml Посмотреть сообщение
1) ОЗУ в тини12 нет, потому все в регистрах
Так не все ведь регистры, которые он прописал, были задействованы в программе.
Zionus вне форума   Ответить с цитированием
Непрочитано 20.12.2014, 01:06   #10
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,944 раз(а) в 5,991 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Программа из книги.. непонятки

Сообщение от Zionus Посмотреть сообщение
Так не все ведь регистры, которые он прописал, были задействованы в программе.
Наоборот было бы гораздо печальней. А в этом - вообще печали не вижу.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума   Ответить с цитированием
Ответ

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для учета деталей tigra440 Информация по радиокомпонентам 3 27.01.2010 17:26
UT71C. Программа регистрации измерений. asng Информация по радиокомпонентам 0 20.07.2007 07:49
Продолжение Про Книги Бесплатная Раздача Книг!!! ArtUrl1986 Поиск схем. Делимся схемами 2 19.06.2007 17:34
[Решено] Какие книги посоветуете почитать по микроконтроллерам Dreikons. Делимся опытом 45 13.05.2006 16:11


Часовой пояс GMT +4, время: 00:12.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot