Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
14.06.2007, 15:24
|
|
Прописка
Регистрация: 13.07.2006
Сообщений: 117
Сказал спасибо: 26
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Проблема с АЦП в ATmega 16L
![Вопрос](images/smilies/icon_question.gif) При симуляции в Astudio работы АЦП с выводом информации на СД дисплей работотает все великолепно, а при переносе программы в МК на СД дисплее белеберда.
Помогите чайнику.
|
|
|
|
14.06.2007, 20:26
|
|
Вид на жительство
Регистрация: 12.04.2007
Сообщений: 348
Сказал спасибо: 2
Сказали Спасибо 36 раз(а) в 32 сообщении(ях)
|
Исходный код с комментариями приложи к теме, лучше будет, ибо телепатов тут нет
|
|
|
|
15.06.2007, 00:14
|
|
Прописка
Регистрация: 13.07.2006
Сообщений: 117
Сказал спасибо: 26
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Проблема с АЦП в ATmega 16L
Сообщение от malyshevsergey
|
При симуляции в Astudio работы АЦП с выводом информации на СД дисплей работотает все великолепно, а при переносе программы в МК на СД дисплее белеберда.
Помогите чайнику.
|
.device ATmega16
.nolist
.include "C:Program filesAtmelAVR toolsAvrAssembler2Appnotesm16def.inc"
.list
.def temp = r16
.def temp1 = r17 ;
.def scet_ADC= r18 ;
.def v = r19 ;
.def Desv = r20 ;
.def Edin = r23
.def Des = r24
.def sotni = r25
.equ RAM = $0060
.equ AD6 = RAM + $40
.equ SUM = RAM + $50
.cseg
.org 0
rjmp Init
nop
nop; INT0addr
nop
nop; INT1addr
nop
nop; OC2addr
nop
nop; OVF2addr
nop
nop; ICP1addr
nop
nop; OC1Aaddr
nop
nop; OC1Baddr
nop
nop; OVF1addr
nop
rjmp Display; nop;
nop
nop; SPIaddr
nop
nop; URXCaddr
nop
nop; UDREaddr
nop
nop; UTXCaddr
nop
rjmp ADC1;
nop
nop; ERDYaddr
nop
nop; ACIaddr
nop
nop; TWIaddr
nop
nop; INT2addr
nop
rjmp ACP; nop;
nop
nop; SPM_RDY
nop
ACP:
ldi temp,0b11001101
out ADCSRA,temp
ldi temp,0b01100000
out ADMUX,temp
sei
ldi temp,1‹‹SE
out MCUCR,temp
sleep
ldi r21,0;ADCL
in r22,ADCH
ldi YL,Low(SUM)
ldi YH,High(SUM)
ld des,Y+
ld edin,Y
add edin,r22
adc des,r21
ldi YL,Low(SUM)
ldi YH,High(SUM)
st Y+,des
st Y,edin
inc scet_ADC
cpi scet_ADC,64
breq Srednee
ret
Srednee:
ldi YL,low(SUM)
ldi YH,High(SUM)
ld r22,Y+
ld r21,Y
clr temp
mov scet_ADC,temp
st Y,temp
st -Y,temp
ldi temp,5
Sred:
lsr r22
ror r21
dec temp
brne Sred
ldi YL,low(AD6)
ldi YH,High(AD6)
st Y+,r22
st Y,r21
HEX_DC:
ld XL,Y
ld XH,-Y
ldi temp,low(10000)
mov temp1,temp
ldi temp,high(10000)
rcall count
ldi temp,low(1000)
mov temp1,temp
ldi temp,high(1000)
rcall count
ldi temp,low(100)
mov temp1,temp
ldi temp,high(100)
rcall count
ldi temp,low(10)
mov temp1,temp
ldi temp,high(10)
rcall count
st -Y,XL
ldi temp,3
out TCCR0,temp
ret
COUNT:
ldi sotni,$ff
c1: inc sotni
sub XL,temp1
sbc XH,temp
brcc c1
st -Y,sotni
add XL,temp1
adc XH,temp
ret
ADC1:
clr temp
out ADCSRA,temp
reti
Display:
ser temp
out PortC,temp
out TCCR0,temp
ldi YL,low(AD6-5)
ldi YH,high(AD6-5)
in temp,PortD
com temp
lsr temp
cpi temp,0b00001000
brne PC+2
ldi temp,0b10000000
com temp
out PortD,temp
nop
nop
sbis PinD,4
ldd temp,Y+0
nop
sbis PinD,5
ldd temp,Y+1
nop
sbis PinD,6
ldd temp,Y+2
nop
sbis PinD,7
ldd temp,Y+3
nop
mov ZL,temp
ld temp,z
out PortC,temp
rcall ACP
ldi temp,69
out TCNT0,temp
ldi temp,3
out TCCR0,temp
reti
Init:
ldi temp,0b00000000
out DDRB,temp
com temp
out DDRC,temp
ldi temp,0b11110000
out DDRD,temp
ldi temp,0b10000000
out DDRA,temp
ldi temp,high(ramend)
out SPH,temp
ldi temp,low(ramend)
out SPL,temp
ldi temp, 0b00001010 ;0
mov r0,temp
ldi temp, 0b11111010 ;1
mov r1,temp
ldi temp, 0b01001100 ;2
mov r2,temp
ldi temp, 0b01101000 ;3
mov r3,temp
ldi temp, 0b10111000 ;4
mov r4,temp
ldi temp, 0b00101001 ;5
mov r5,temp
ldi temp, 0b00001001 ;6
mov r6,temp
ldi temp, 0b01111010 ;7
mov r7,temp
ldi temp, 0b00001000 ;8
mov r8,temp
ldi temp, 0b00101000 ;9
mov r9,temp
ldi YL,low(SUM)
ldi YH,High(SUM)
clr temp
st Y+,temp
st Y,temp
ldi YL,low(AD6-5)
ldi YH,High(ad6-5)
st Y+,temp
st Y+,temp
st Y+,temp
st Y+,temp
st Y+,temp
mov scet_ADC,temp
mov edin,temp
mov des,temp
mov sotni,temp
ldi temp,0b01111111
out PortD,temp
ldi temp,0b10000000
out SREG,temp
ldi temp,69
out TCNT0,temp
ldi temp,1‹‹TOV0
out TIMSK,temp
ldi temp,0b00000011
out TCCR0,temp
Start:
rjmp Start
|
|
|
|
15.06.2007, 08:11
|
|
Вид на жительство
Регистрация: 12.04.2007
Сообщений: 348
Сказал спасибо: 2
Сказали Спасибо 36 раз(а) в 32 сообщении(ях)
|
Так, хорошо, а комментарии где?
Как нам понять что ты и где делаешь в программе?
Учитесь писать комментарии, самим же потом проще будет
И еще, код не обязательно вставлять в пост свой, его можно и прикрепить в тестовом файле, намного лучше будет, ИМХО
|
|
|
|
15.06.2007, 15:50
|
|
Прописка
Регистрация: 13.07.2006
Сообщений: 117
Сказал спасибо: 26
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Сообщение от mrKirill
|
Так, хорошо, а комментарии где?
Как нам понять что ты и где делаешь в программе?
Учитесь писать комментарии, самим же потом проще будет
И еще, код не обязательно вставлять в пост свой, его можно и прикрепить в тестовом файле, намного лучше будет, ИМХО
|
Исправлюсь.
|
|
|
|
16.06.2007, 00:55
|
|
Прописка
Регистрация: 13.07.2006
Сообщений: 117
Сказал спасибо: 26
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Проблема с АЦП в ATmega 16L
Спасибо всем за беспокойство.
Я, нашел причину.
Причина:
Перед считыванием в сдвоенный регистр адреса, пришлось принудительно его обнулить.
Display:
ldi ZL,low(0)
ldi ZH,High(0)
mov ZL,temp ;считываем адрес в ZL
ld temp,z ;записываем код цифры
out PortC,temp ;выводим в порт
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
AtMega АЦП
|
impuls-v |
Микроконтроллеры, АЦП, память и т.д |
19 |
20.06.2011 20:12 |
Трансивер+ATmega= неработает АЦП !!
|
Tcom |
Микроконтроллеры, АЦП, память и т.д |
2 |
27.05.2011 14:16 |
Проблема с АЦП Мега16
|
malyshevsergey |
Микроконтроллеры, АЦП, память и т.д |
14 |
14.12.2007 17:44 |
АЦП ATmega 48
|
Tcom |
Микроконтроллеры, АЦП, память и т.д |
2 |
11.10.2005 20:32 |
проблема с АЦП
|
xelos |
Микроконтроллеры, АЦП, память и т.д |
4 |
30.06.2005 21:20 |
Часовой пояс GMT +4, время: 12:19.
|
|