Как измерить импульс напряжения от кнопки
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено LPBOY 05 ноября 2005 г. 00:41

Здравствуйте. Есть такая программа для ATmega8535, проверяю на STK500.
Кнопки подключены к порту А, диоды к порту В.
Предполагалось, что при нажатии 7-й кнопки импульс от этого нажатия поступает на вход ADC7
и измеряется. Затем значения регистров ADCH/L выводятся на диоды с некоторым интервалом времени.


.include "m8535def.inc"

.org 0
rjmp RESET

.org ADCCaddr
rjmp interrupt

.MACRO output
com @1
out @0, @1
com @1
.ENDMACRO

RESET:
ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16

ldi r16, 0x47
out ADMUX, r16
ldi r16, (1 << ADEN)|(1 << ADIE)|(1 << ADSC)|(1 << ADFR)|(1 << ADPS0)|(1 << ADPS2)
out ADCSRA, r16

ldi r16, 0xFF
out DDRB, r16

clr r16
out DDRA, r16
out PORTA, r16

sei
MAIN:
rjmp MAIN

interrupt:
in r20, ADCL
in r21, ADCH

andi r21, 0x03

output PORTB, r20
rcall delay
output PORTB, r21
rcall delay
reti

delay:

delay1:
ldi r17, 100
delay2:
ldi r18, 100
delay3:
dec r18
brne delay3
dec r17
brne delay2
dec r19
brne delay1
ret


При не нажатой кнопке горят сначала 8 диодов а затем младшие два, т.е ADCL = 0xFF, ADCH = 0x03.
При нажатой все диоды гаснут. А если отключить кнопки от порта А, т.е вынуть провод, то диоды начинают мигать в случайном порядке.
Пожалуйста объясните почему так происходит? И возможно ли это вообще измерить импульс от нажатия кнопки?
Помогите, уже целую неделю мучаюсь с этой программой :'((((((

Составить ответ  |||  Конференция  |||  Архив

Ответы



Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru