Предлагаю перейти на "личности"
Ассемблер (ASM) для AVR в вопросах и ответах
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
IM1
Предлагаю перейти на "личности"
(в смысле в личную переписку)
Предлагаю перейти на "личности"
- Реклама
- MTF
- Нашел транзистор. Понюхал.
- Сообщения: 179
- Зарегистрирован: Чт янв 07, 2010 11:25:12
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Всем привет !!!
Давно что то не занимался своим устройством вот опять решил занятся и наткнулся на небольшую проблемку
вопрос к спецам :
Не могу проверить порт B attiny2313 настроенный как вход без подтяжки
на наличее на входе плюса взятого с порта PD4
проверяю так
sbic почему то не пропускает , сразу переходит на PwrOn (даже не нажимая на кнопку), попробовал sbis тоже сразу переходит !!!
там что одновременно 1 и 0 ????
Давно что то не занимался своим устройством вот опять решил занятся и наткнулся на небольшую проблемку
вопрос к спецам :
Не могу проверить порт B attiny2313 настроенный как вход без подтяжки
Код: Выделить всё
ldi r16,0b00001111 ;Set Ini Ports func (DIRECTIO)
out ddrb,r16 ; DDRB
ldi r16,0b00000000 ;Set Ini Ports value (VALUE)
out portb,r16 ; PORTB
на наличее на входе плюса взятого с порта PD4
проверяю так
Код: Выделить всё
; основная прогр
*************
*************
*************
Enable:
sei
sbi portd , 4
sbic pinb , PB4 ; "+"(PB4)
rjmp PwrOn
; sbic pinb , PB5 ; "-"(PB5)
; rjmp PwrOn
********
********
rjmp Enable ;
PwrOn:
********
sbic почему то не пропускает , сразу переходит на PwrOn (даже не нажимая на кнопку), попробовал sbis тоже сразу переходит !!!
там что одновременно 1 и 0 ????
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
если вход без подтяжки, то это означает что pinbx будет присутствовать примерно 1/2Vcc что соответствует лог.1, поэтому программа правильно переходит.
замкни вывод на корпус и ...
вот оно счастье
замкни вывод на корпус и ...
вот оно счастье
- MTF
- Нашел транзистор. Понюхал.
- Сообщения: 179
- Зарегистрирован: Чт янв 07, 2010 11:25:12
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
GP1 если помните у меня динамическая индикация с общим катодом на катодах 4 кнопки с 4 диодами _noise давал алгоритм работы !!!http://radiokot.ru/forum/viewtopic.php?f=20&t=28364
вот и приходится с плюсом марочится с +
я согласен а почему также переходит по команде sbis ???
как нибуть еще можно проверить ????
вот и приходится с плюсом марочится с +
то это означает что pinbx будет присутствовать примерно 1/2Vcc что соответствует лог.1, поэтому программа правильно переходит.
я согласен а почему также переходит по команде sbis ???
как нибуть еще можно проверить ????
Последний раз редактировалось MTF Вт июн 08, 2010 14:59:29, всего редактировалось 1 раз.
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
без подтяжки к + или массе ни как, висящий в воздухе вывод - это вещь в себе: антенна для помех, указатель цены на дрова в прошлом году
ну для проверки можно же подключиться к чему-то определенному, чтобы исключить влияние вспышек на солнце и дрейфа айсбергов.
Освежил в памяти твой проектик, смотри, когда ты переключаешь потрБ на вход ни что не мешает подтянуть его встроенными резюками к +.
ну для проверки можно же подключиться к чему-то определенному, чтобы исключить влияние вспышек на солнце и дрейфа айсбергов.
Освежил в памяти твой проектик, смотри, когда ты переключаешь потрБ на вход ни что не мешает подтянуть его встроенными резюками к +.
- Реклама
- MTF
- Нашел транзистор. Понюхал.
- Сообщения: 179
- Зарегистрирован: Чт янв 07, 2010 11:25:12
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
т.е пока я не включу подтяжку на входе ни чего определенного не будет я правильно понял ???
если я включу внутреннюю подтяжку, у меня ведь плюс будет на входе , минус я так понял внешнее сопр надо ставить , а хотелось бы без него ???
Какие нибуть варианты еще возможны ????
если я включу внутреннюю подтяжку, у меня ведь плюс будет на входе , минус я так понял внешнее сопр надо ставить , а хотелось бы без него ???
Какие нибуть варианты еще возможны ????
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
так и будет.
если верить схеме подключения кнопок, то без сопры на кнопке не обойтись.
если верить схеме подключения кнопок, то без сопры на кнопке не обойтись.
- MTF
- Нашел транзистор. Понюхал.
- Сообщения: 179
- Зарегистрирован: Чт янв 07, 2010 11:25:12
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
если я минус подам на катоды у меня засветится цифра последняя загруженная в 74ls164
но это можно подправить придется после настройки на вход порт B еще дополнительно стирать из 74ls164 послед цифру , а то при подачи минуса на portb подсветится индикатор , и диоды
перепаять придется
но это можно подправить придется после настройки на вход порт B еще дополнительно стирать из 74ls164 послед цифру , а то при подачи минуса на portb подсветится индикатор , и диоды
перепаять придется
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
не совсем так, у тебя будут высвечиваться все цифры, ты же не сможешь обеспечить нажатие кнопки строго в момент опроса, кнопка по-любому будет нажатой N-циклов динамической индикации всех разрядов.
- MTF
- Нашел транзистор. Понюхал.
- Сообщения: 179
- Зарегистрирован: Чт янв 07, 2010 11:25:12
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
GP1 что же делать не пойму , с + бы проблем не было но геморойно реализовать навесным не хотелось бы , c - тоже загвозка есть с индикацией ????
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
да честно говоря я не вижу проблемы.
1. при опросе переключаешь выводы на вход
2. подключаешь подтягивающие резисторы
3. считываешь кнопку(и)
4. возвращаешь порт в исходное
единственное, без добавочного резистора на кнопке никак.
1. при опросе переключаешь выводы на вход
2. подключаешь подтягивающие резисторы
3. считываешь кнопку(и)
4. возвращаешь порт в исходное
единственное, без добавочного резистора на кнопке никак.
- MTF
- Нашел транзистор. Понюхал.
- Сообщения: 179
- Зарегистрирован: Чт янв 07, 2010 11:25:12
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
to GP1
это тот резистор который предлагал ooogo http://radiokot.ru/forum/download/file.php?id=31171
единственное, без добавочного резистора на кнопке никак.
это тот резистор который предлагал ooogo http://radiokot.ru/forum/download/file.php?id=31171
- selevo
- Открыл глаза
- Сообщения: 41
- Зарегистрирован: Чт ноя 26, 2009 13:44:03
- Откуда: Ижевск
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
загрузил в avr studio 4 hex файл
дизассемблер показывает какие-то пропущенные строки со знаками вопросов вместо операндов
что за опкоды такие которые не понятны студии ?
или надо сменить адрес начала дизассемблирования ?

дизассемблер показывает какие-то пропущенные строки со знаками вопросов вместо операндов
что за опкоды такие которые не понятны студии ?
или надо сменить адрес начала дизассемблирования ?
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Это могут быть какие-то константы, а не команды. Надо разбираться по логике работы программы.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Зравствуйте! Подскажите как присвоить значение отдельным битам порта содержимое какой-нибудь переменной?
например:
out PORTD,temp ;будет просто установлено значение переменной temp в порт D
а мне надо в порт С на 3ю ножку установить значение такое же как на 6м бите перменной temp и таким же образом раскидать другие переменные.
И наоборот. Как можно сделать обратную операцию, т.е. из разных битов портов составить содержимое переменной temp?
например:
in temp,PINC ;будет просто скопировано значение состояния порта С переменную temp
Дело в том, что мне необходимо "мягко" изменить код программы, не прибегаю к полному переписанию кода программы. Переменные, указанные в программе работают со старым подключением проводов к ножкам МК.
т.е. мне надо будет изменить следующий код:
out PORTD,scancod
clc
ldi rots,4
in temp,PINC
где:
PD0 <->PD4
PD1 <->PD5
PD4 <->PC0
PD5 <->PC1
PD6 <->PC2
PD7 <->PC3
например:
out PORTD,temp ;будет просто установлено значение переменной temp в порт D
а мне надо в порт С на 3ю ножку установить значение такое же как на 6м бите перменной temp и таким же образом раскидать другие переменные.
И наоборот. Как можно сделать обратную операцию, т.е. из разных битов портов составить содержимое переменной temp?
например:
in temp,PINC ;будет просто скопировано значение состояния порта С переменную temp
Дело в том, что мне необходимо "мягко" изменить код программы, не прибегаю к полному переписанию кода программы. Переменные, указанные в программе работают со старым подключением проводов к ножкам МК.
т.е. мне надо будет изменить следующий код:
out PORTD,scancod
clc
ldi rots,4
in temp,PINC
где:
PD0 <->PD4
PD1 <->PD5
PD4 <->PC0
PD5 <->PC1
PD6 <->PC2
PD7 <->PC3
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Код: Выделить всё
sbrc temp, x ; Если бит х в РОН temp сброшен, пропустить след. команду
sbi PORTy, z ; Установить бит z прота y
sbrs temp, x ; Если бит х в РОН temp установлен, пропустить след. команду
cbi PORTy, z ; сбросить бит z прота yНу, как то так...
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Pooher писал(а):Ну, как то так...
Спасибо, логичное решение. По такому принципу исправил свой код, получил:
Код: Выделить всё
andi PORTD, $CF; обнулить биты 4 и 5
andi PORTC, $F0; обнулить младший полубайт
sbrc scancod, 0 ; Если бит 0 в РОН scancod сброшен, пропустить след.команду
sbi PORTD, 4 ; Установить бит 4 прота D
sbrc scancod, 1 ; Если бит 1 в РОН scancod сброшен, пропустить след. команду
sbi PORTD, 5 ; Установить бит 5 прота D
sbrc scancod, 4 ; Если бит 4 в РОН scancod сброшен, пропустить след. команду
sbi PORTC, 0 ; Установить бит 0 прота C
sbrc scancod, 5 ; Если бит 5 в РОН scancod сброшен, пропустить след. команду
sbi PORTC, 1 ; Установить бит 1 прота C
sbrc scancod, 6 ; Если бит 6 в РОН scancod сброшен, пропустить след. команду
sbi PORTC, 2 ; Установить бит 2 прота C
sbrc scancod, 7 ; Если бит 7 в РОН scancod сброшен, пропустить след. команду
sbi PORTC, 3 ; Установить бит 3 прота C
clc
ldi rots,4
clr temp;
sbrc PIND, 4 ; Если бит 0 в РОН scancod сброшен, пропустить след. команду
sbi temp, 0 ; Установить бит 4 прота D
sbrc PIND, 5 ; Если бит 1 в РОН scancod сброшен, пропустить след. команду
sbi temp, 1 ; Установить бит 5 прота D
sbrc PINC, 0 ; Если бит 4 в РОН scancod сброшен, пропустить след. команду
sbi temp, 4 ; Установить бит 0 прота C
sbrc PINC, 1 ; Если бит 5 в РОН scancod сброшен, пропустить след. команду
sbi temp, 5 ; Установить бит 1 прота C
sbrc PINC, 2 ; Если бит 6 в РОН scancod сброшен, пропустить след. команду
sbi temp, 6 ; Установить бит 2 прота C
sbrc PINC, 3 ; Если бит 7 в РОН scancod сброшен, пропустить след. команду
sbi temp, 7 ; Установить бит 3 прота Cтолько при запуске выдаёт ошибки на первые две строки Invalid register и на второй блок команд (после строчки clr temp;) почерёдно Invalid register и Invalid number
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
1. Прямо к портам обращаться нельзя.
Надо так:
2.
для РОН - команда SBR
3.
здесь команда SBIC
Код: Выделить всё
andi PORTD, $CFНадо так:
Код: Выделить всё
in temp, PORTD
andi temp, $CF
out PORTD, temp2.
Код: Выделить всё
sbi temp, 5для РОН - команда SBR
3.
sbrc PINC, 1
здесь команда SBIC
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
selevo писал(а):загрузил в avr studio 4 hex файл
дизассемблер показывает какие-то пропущенные строки со знаками вопросов вместо операндов
что за опкоды такие которые не понятны студии ?
или надо сменить адрес начала дизассемблирования ?
Между векторами прерываний и обработчиком старта или данные, или скорее всего, мусор. Бессмысленный набор, если рассматривать как команды. Копировать пару регистров и следующей же командой затирать регистры - ясен пень, мура. Отсюда и неизвестные опкоды.
Я бы рекомендовал включить дебагер и в шаговом режиме пройти хотя бы первую команду rjmp Start, и уже от этого адреса дизасемблироваь дальше. И не факт, что такая же фигня не окажется в другом месте, если кодовые сегменты имеют разрывы :
Сегмент кода 1
........
.org 0xХХХ
Сегмент кода 2
А разбираться - мусор это или данные - нужно анализировать наличие команд LPM. Если есть, и указатель выставлен на это место памяти, - значит, что-то осмысленное. Я так никогда не делаю - константы закидываю в конец флеш-памяти.



