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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 22.04.2005, 12:43  
impuls-v
Частый гость
 
Регистрация: 18.01.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
impuls-v на пути к лучшему
По умолчанию AT90S2313 stec

Люди кто хразбирается в атмелах пожалуйста помогите.
Потребовалось написать простейщую прпограмму генератора (приведена ниже). Проблема в том что нереагирует на кнопки (подпрограммы minus, plus), хотя симулятор работает нормально. Я так понял что микроконтроллер отказывается заходить в подпрограмму обработки кнопок.
Также где найти описание команды LOW(RAMEND) и кто может прокансультировать насчет работы со стеком.
Да и спасибо за proteus, класная вещь
.include "2313def.inc"

.def tmp3_r =r18
.def tmp1_r =r19
.def tmp2_r =r20

.org 0
rjmp st
.org 20

st:
ldi tmp1_r,LOW(RAMEND) ;Установка стека
out spl,tmp1_r
ldi tmp1_r,0B00000011
out ddrb,tmp1_r
ldi r16, 0b11111100
out portb, r16
loop:
sbi portb,0
rcall wait1
cbi portb,0
rcall knopka
rcall wait
sbi portb,1
rcall wait1
cbi portb,1
rcall wait
rjmp loop



wait1:
ldi tmp3_r, 255
l2: dec tmp3_r
brne l2
ret

wait:
ldi tmp3_r, 3
l3: mov tmp1_r, r23
l4: dec tmp1_r
brne l4
dec tmp3_r
brne l3
ret

knopka:
;in r20, pinb
;sbrs r20, 2
sbis pinb,2 ;Если нажата кнопка "+"(PD1)
rcall plus

;sbrs r20, 3
sbis pinb,3 ;Если нажата кнопка "-"(PD2)
rcall minus
ret

plus:
ldi r21,$ff ;Задаем максимальное значение ШИМ
ldi r22,$33 ;Задаем дискретность ШИМа
cpse r21,r23 ;Проверяем не максимальное ли значение
add r23,r22 ;Увеличиваем длительность импульса

ret

minus:
ldi r24,$00 ;Задаем min значение ШИМ
ldi r25,$33 ;Задаем дискретность ШИМа
cpse r24,r23 ;Проверяем не min ли значение
sub r23,r25
ret
Реклама:
impuls-v вне форума  
Непрочитано 22.04.2005, 13:46  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Ваша подпрограммка Wait1 выполняется примерно за 256*3=768 тактов. Даже если тактовая 1 МГц - такт 1 мкс - это меньше миллисекунды. Сколько раз успеет отработать подпрограмма "плюс" или "минус" даже при кратковременном нажатии? Думаю, очень много. Поэтому вы ничего и не замечаете.

LOW(RAMEND) это не команда, а константа - адрес последней ячейки ОЗУ.

Почитать по МК АВР кое-что можете на http://avr.nikolaew.org
nml вне форума  
Непрочитано 23.04.2005, 03:17  
impuls-v
Частый гость
 
Регистрация: 18.01.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
impuls-v на пути к лучшему
По умолчанию

Программа приведена без куска где учитывается предыдущее состояние кнопки, факт в том что вообще нет реакции на кнопку.
impuls-v вне форума  
Непрочитано 24.04.2005, 00:28  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от impuls-v
Программа приведена без куска где учитывается предыдущее состояние кнопки, факт в том что вообще нет реакции на кнопку.
"Нет реакции" - опять-таки как-то неконкретно. Какая должна быть реакция, чем контролируете...

Потом - мне кажется странным сравнение с максимумом по "=".
А если "перескочили"?
nml вне форума  
Непрочитано 24.04.2005, 04:07  
impuls-v
Частый гость
 
Регистрация: 18.01.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
impuls-v на пути к лучшему
По умолчанию

Не перескакивает проверял, записывается в регистр число 255.
Мне кажется что какая-то проблема со стеком.
И если есть пример "антидребезговой" программы не мог бы выложить.
impuls-v вне форума  
Непрочитано 12.06.2005, 21:54  
Dungeon
Прохожий
 
Регистрация: 27.02.2005
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dungeon на пути к лучшему
По умолчанию AT90S2313 stec

Должна работать. Сдела чтобы срабатывала не по нажатию кнопки а по отпусканию. В принципе пп дребезга не нужно.

.include "2313def.inc"

.def tmp3_r =r18
.def tmp1_r =r19
.def tmp2_r =r20
.def status_key = r17 ;состояние клавиш

.equ KEY_SET_PLUS=1
.equ KEY_SET_MINUS=2

.org 0
rjmp st
.org 20

st:
ldi tmp1_r,LOW(RAMEND) ;????????? ?????
out spl,tmp1_r
ldi tmp1_r,0B00000011
out ddrb,tmp1_r
ldi r16, 0b11111100
out portb, r16
clr status_key

loop:
sbi portb,0
rcall wait1
cbi portb,0
rcall knopka
rcall wait
sbi portb,1
rcall wait1
cbi portb,1
rcall wait

;***************************
sbrs status_key,0
rjmp m3
sbis pinb,2
rjmp m3
rcall plus
Cbr status_key,1
m3:
;***************************
sbrs status_key,1
rjmp m4
sbis pinb,3
rjmp m4
rcall minus
Cbr status_key,2
m4:
;***************************
rjmp loop



wait1:
ldi tmp3_r, 255
l2: dec tmp3_r
brne l2
ret

wait:
ldi tmp3_r, 3
l3: mov tmp1_r, r23
l4: dec tmp1_r
brne l4
dec tmp3_r
brne l3
ret

knopka:
;in r20, pinb
;sbrs r20, 2
sbic pinb,2 ;???? ?????? ?????? "+"(PD1)
rjmp m1
Sbr status_key,1
;rcall plus

m1:
;sbrs r20, 3
sbis pinb,3 ;???? ?????? ?????? "-"(PD2)
Sbr status_key,2
;rcall minus

ret

m2:

plus:

ldi r21,$ff ;?????? ???????????? ???????? ???
ldi r22,$33 ;?????? ???????????? ????
cpse r21,r23 ;????????? ?? ???????????? ?? ????????
add r23,r22 ;??????????? ???????????? ????????

ret

minus:
ldi r24,$00 ;?????? min ???????? ???
ldi r25,$33 ;?????? ???????????? ????
cpse r24,r23 ;????????? ?? min ?? ????????
sub r23,r25
ret


P. S. Извени что нет коментаря. Думаю догадаешся как работает. Стек тут не причем.
Dungeon вне форума  
Непрочитано 21.06.2005, 23:47  
Гость
 
Сообщений: n/a
По умолчанию

А что, кнопки "дребежат" только при нажатии,а при отпускании уже не "дребежат"? Какая то неправильная кнопка...
 
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Информация по AT90S2313 mikal Информация по радиокомпонентам 2 29.01.2011 02:56
AT90S2313 vs Attiny2313-20 Edward_tlt Микроконтроллеры, АЦП, память и т.д 68 20.03.2008 23:11
I2C, WinAVR и at90s2313 Hoksmur Микроконтроллеры, АЦП, память и т.д 22 04.09.2007 01:14
Сенсорный выключатель на AT90S2313 AYAXX Микроконтроллеры, АЦП, память и т.д 0 01.11.2006 10:17
Proteus и AT90S2313 Ozzy Proteus 3 03.08.2005 15:18


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


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