ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Обсуждаем контроллеры компании Atmel.
Ответить
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

.db 254
Что это будет означать?
данные - 254 или 11111110 - это символ 8 на индикаторе.
А как ссылаться на эту область памяти? LPM?
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

И еще, как определить, где в ПЗУ памяти программ расположились указанные байты?
после всего кода?
т.е. допустим, последним был обработчик прерывания, команда reti была последней командой, и ее адрес был 0x190, значит, что в 0x191 будет расположен 1й параметр директивы .db?
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск

Сообщение Rimsky »

И еще, как определить, где в ПЗУ памяти программ расположились указанные байты?
после всего кода?
т.е. допустим, последним был обработчик прерывания, команда reti была последней командой, и ее адрес был 0x190, значит, что в 0x191 будет расположен 1й параметр директивы .db?
Вы спрашиваете или просто попиз..ть и поморочить народу голову? Судя по Вашему статусу, и количеству сообщений, такие вопросы это не Ваш уровень :))
Контактная информация:
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

расположен 1й параметр директивы .db?
Это что?
Вам какая разница, какой у меня уровень?
Я спрашиваю, и читаю другие источники, чтобы научиться! Есть вопросы? :evil: :wink:
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Применительно к АСМу.
.db 254
Что это будет означать?
данные - 254 или 11111110 - это символ 8 на индикаторе.
А в чём разница между "254" и "11111110"?
Конкретно в НЕХе будет записано "FE".
А как ссылаться на эту область памяти? LPM?

Код: Выделить всё

Array:
.db 1, 2, 3, 4

ReadArray:
clr r16
ldi ZL, LOW(Array*2)
ldi ZH, HIGH(Array*2)
add ZL, r17 ; в r17 индекс элемента
adc ZH, r16
lpm r16, Z
ret
И еще, как определить, где в ПЗУ памяти программ расположились указанные байты?
Где в программе записаны, там и есть.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Реклама
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

вопрос такой: в устройстве по кнопке идет циклическое переключение светодиодов. проверка происходит по таймеру 25 Гц.
когда включаю схему диоды начинают мигать словно я держу кнопку постоянно.
пин для кнопки(PD6) сконфигурирован как вход и включен подтягвающий резистор

Код: Выделить всё

PORTD=0b1000000;
DDRD=0x3F;
кнопка замыкает соответственно PD6 на землю.
код проверки:

Код: Выделить всё

 if (PIND.6==0) 
           {   
               PORTA.0=0;
               PORTA.1=0;
               PORTB.7=0;
                #asm("nop");
                #asm("nop"); 
                 state++;
          switch(state) 
            {
             case 0:PORTA.0=1;break;
             case 1:PORTA.1=1;break;
             case 2:PORTA.1=1;PORTA.0=1;break;
             case 3:PORTB.7=1;break;
             case 4:PORTB.7=1;PORTA.0=1;break;
             case 5:PORTB.7=1;PORTA.1=1;state=-1;break;  
             }
          } ;
Почему такое может быть? Нужен внешний подтяг. резистор?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

NebelWefer писал(а):Почему такое может быть? Нужен внешний подтяг. резистор?
А как у вас кнопка подключена?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

вот подключение кнопки, стандартное вроде....

получается, что не трогая кнопку, диоды все равно моргают, будто подтягивающий резистор не работает и вход висит в воздухе
Вложения
but.PNG
(1.89 КБ) 402 скачивания
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Кнопка на PD6, подтяжка на PD7?
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

добавлю к сообщению Pooher`а в программе PORTD, на картинке PORTB.
Ставим плюсы: )
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

ibiza11 писал(а):добавлю к сообщению Pooher`а в программе PORTD, на картинке PORTB.
да, на картинке ошибся, там должен быть PD6,
Pooher писал(а):Кнопка на PD6, подтяжка на PD7?
почему? 0b1000000 - утановка 6го бита, и кнопка на PD6. PD7 отсутствует у 2313
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

NebelWefer писал(а):почему? 0b1000000 - утановка 6го бита, и кнопка на PD6. PD7 отсутствует у 2313
Бред. Пишите корректно: 0b01000000, даже если 7-ой бит отсутствует. За вас никто не будет думать, есть 7-ой бит или нет.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

В чем же бред? :evil: ничего некорректного в данной записи нет.
Зачем думать про 7й бит(есть он или нет) когда речь идет о 6м?
может тогда и до 16ти разрядного числа расширять?
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

ножка настроена на ввод, подтяжка включена...
приведенный код вроде должен работать, схема подключения правильная... померьте напряжение на ножке PD6 без нажатия кнопки. может коротит где-нибудь на землю?
Ставим плюсы: )
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

NebelWefer писал(а):Зачем думать про 7й бит(есть он или нет) когда речь идет о 6м?
А затем, что вы ставите "1" сразу после "0b", т.е. в седьмой разряд.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Не, ну это полный 1.14здец!
Ты записываешь в ВОСЬМИБИТНЫЙ РЕГИСТР ПОРТА число 0b10000000 => устанавливаешь СЕДЬМОЙ его бит. Компилятору и МК ГЛУБОКО ПОФИГУ есть он ФИЗИЧЕСКИ или его нет!

ЗЫ: Ну попробуй, запиши 0b01000000
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

Pooher
Считать умеем?
NebelWefer писал(а):0b1000000
6й бит!
регистр порта D -7 битный - вот я и записываю в него 7битное число.

врать не буду-не знаю точно какое число бы записалось если бы регистр был 8битный: 0b01000000 или 0b10000000.
Но с 7битным ситуация предельно ясна.
Pooher писал(а):ЗЫ: Ну попробуй, запиши 0b01000000
Пожалуйста! только ради Вас сударь проверил

Код: Выделить всё

PORTD=0b01000000;
DDRD=0x3F;
результат НЕ ИЗМЕНИЛСЯ!
Gudd-Head писал(а):А затем, что вы ставите "1" сразу после "0b", т.е. в седьмой разряд.
И кто же сказал, что после 0b идет обязательно 7й бит? все рависит от разрядности числа, в данном случае число 7битное.

ЗЫ: по делу: отключил встроенную подтяжку и поставил резистор на 5к6 на плюс-все заработало как часы...только теперь с дребезгом разобраться надо....

Кстати, а если во время выполнения процедуры обработки прерывания таймера придет новое прерывание от него же оно выполниться?
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

NebelWefer писал(а):Кстати, а если во время выполнения процедуры обработки прерывания таймера придет новое прерывание от него же оно выполниться?
Сударь! Если во время одного прерывания возникло другое, то об этом будет выставлен соответствующий флаг. Если вы разрешили прерывания в обработке соответвтвующего прерывания, то прерывание произойдёт. А если нет — прерывание будет после выхода из предыдущего прерывания.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

Ясно, спасибо.
Я это к тому где лучше разместить задержку для устранения дребезга кнопки в таймере или в основном теле.
1/25 сек явно достаточно быстро чтобы сканирование кнопки успело пройти несколько раз, а скапливающиеся прерывания наверно не есть гут :dont_know:
Лучше наверно разместить проверку в основно цикле.
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

NebelWefer писал(а):Я это к тому где лучше разместить задержку для устранения дребезга кнопки в таймере или в основном теле.
Всё дело в том, как у вас происходит обработка нажатия на кнопку. Если по прерыванию от нажатия на кнопку — то достаточно анулировать флаг повторного случайного нажатия на кнопку (прерывания) записью лог. "1" в соотв. флаг.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «AVR»