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

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

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

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

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

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

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

 
Опции темы

AT90S2313 stec

Непрочитано 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,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
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,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
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, время: 00:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.