Страница 2 из 2
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 20:25:48
DIMA040891
Пробывал, нет невыводит(( Выводил, после настройки портов.
Кстати МК ток жрёт 8...10 mA, это немного??
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 20:26:41
DIMA040891
Пробывал, нет невыводит(( Выводил, после настройки портов.
Кстати МК ток жрёт 8...10 mA, это немного??
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 20:38:13
GP1
DIMA040891 писал(а):Пробывал, нет невыводит(( Выводил, после настройки портов.
Кстати МК ток жрёт 8...10 mA, это немного??
Чего пробывал?
на какой частоте работает мк? смотри в ДШ кокой ток должен быть при этом.
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 20:39:00
avruser
Всмысле, после настройки портов.
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 20:44:24
DIMA040891
Вот так теперь это выглядит:
.
.
. ldi Temp,low(RamEnd) ;установка указателя стека
out SPL,Temp
ldi Temp,high(RamEnd)
out SPH,Temp
ldi Temp,0b11111110
out DDRC,Temp
ldi Temp,0b00101000
out PORTC,Temp
ldi Temp,0b11100000
out ADMUX,Temp; выбор канала, а так же выравнивание влево(бит 5),+(биты 6 и 7)
; включение опорного напряжения внутреннего источника
.
.
.
.
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 20:46:15
Pooher
Код полностью мы увидим?
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 20:49:30
DIMA040891
.INCLUDE "m8def.inc"
.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def Temp5=R21
.def Temp6=R22
.def Temp7=R23
.def Temp8=R24
.def Temp9=R25
.dseg
Digit: .byte 4
RAM: .byte 10
.cseg
.org 0
rjmp Reset
rjmp EXT_INT0
rjmp EXT_INT1
rjmp TIM2_COMP
rjmp TIM2_OVF
rjmp TIM1_CAPT
rjmp TIM1_COMPA
rjmp TIM1_COMPB
rjmp TIM1_OVF
rjmp TIM0_OVF
rjmp SPI_STC
rjmp USART_RXC
rjmp USART_UDRE
rjmp USART_TXC
rjmp EE_RDY
rjmp ANA_COMP
rjmp TWSI
rjmp SPM_RDY
;Reset:
EXT_INT0:
EXT_INT1:
TIM2_COMP:
TIM2_OVF:
TIM1_CAPT:
TIM1_COMPA:
TIM1_COMPB:
TIM1_OVF:
TIM0_OVF:
SPI_STC:
USART_RXC:
USART_UDRE:
USART_TXC:
EE_RDY:
ANA_COMP:
TWSI:
SPM_RDY:
reti
ldi Temp,low(RamEnd) ;установка указателя стека
out SPL,Temp
ldi Temp,high(RamEnd)
out SPH,Temp
ldi Temp,0b11111110
out DDRC,Temp
ldi Temp,0b00101000
out PORTC,Temp
ldi Temp,0b11100000
out ADMUX,Temp; выбор канала, а так же выравнивание влево(бит 5),+(биты 6 и 7)
; включение опорного напряжения внутреннего источника
ldi Temp,0b10000101
out ADCSR,Temp; старший бит вкл АЦП, младшие - предделитель
reset: sbi ADCSR,ADSC ; уст бит "старт преобразования"
WaitADC:
sbis ADCSR,ADIF
rjmp WaitADC
; тут отсчет готов...
in Temp1,ADCH ; ст байт
out PORTC,Temp1
ldi Temp3,0x06
ldi Temp2,0x1A
ldi Temp1,0x80
Delay: subi Temp1,1;ждём 0,5С
sbci Temp2,0
sbci Temp3,0
brcc Delay
rjmp reset
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 21:07:08
GP1

ну и как по-твоему это должно работать?
если при старте программа уходит на зацикливание, без всякой настройки портов и перефирии...
посмотри где у тебя стоит метка
Reset
и все-таки включи ADIE
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 21:10:48
Pooher
Мда... Две страницы исписали, чуть не подрались, а тут...
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 22:08:51
DIMA040891
Мне очень и очень

стыдно)) Большое спасибо, так я бы наверное долго головой об стенку бился))))
Осталось 2 вопросика:
1. Можно ли в недиферинциальном режиме АЦП задействовать внутренний усилитель x10???? Если можно то как????
2. Все ракроме старшего разряда светодиодов моргают, это возможно из-зи плохого источника питания????
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 22:42:43
GP1
Ну начнем с того что у М8 нет усилителя, если один светодиод отличается по яркости - ИП здесь ни при чем.
Смотри настройки портов, подключение пул-ап резисторов, подключенную периферию и т.п.
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 22:53:00
DIMA040891
Нет, дела не в разной яркости, а в том что значение постоянно меняется, горят то 2 то 3, 4 светодиода (хотя переменный ризистор в этот момент я нетрогую), ИП у меня очень слабенький, напряжение на клемах питания изменятся примерно на 0,3В при загорании разного количества светодиодов. Возможно это может спровоцировать ошибки при измернии напряжения????

Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 22:59:06
Pooher
Плохое питание - это "смерть" точности измерения. Плюсом к тому, Ваше программное решение не способно обеспечить высокую точность хотябы из за того, что АЦП рекомендуется использовать в режиме ADC Noise Reduction Mode.
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 23:01:07
GP1
Просадка на 0.3В - это примерно 15 ед.АЦП, при таком способе преобразования, а это 3-4 мл.разряда в результате, поэтому вполне возможно мигание светодиодов в хаотичном порядке

, пардон беспорядке.
зы: ну
ADC Noise Reduction Mode нужно "включать" при полном (10 разрядном) преобразовании, а при 8-и разрядах этот режим не обязателен.
Re: ATmega8 и АЦП
Добавлено: Чт мар 18, 2010 23:22:54
Pooher
Ну почему же? Ведь мы считываем младшие разряды.
Re: ATmega8 и АЦП
Добавлено: Пт мар 19, 2010 00:00:20
DIMA040891
Ну вобщем испльзование хорошего ИП, LC фильтроф питания, а также конденсатора для AREF совместно с режимом ADC Noise Reduction Mode даст точность 8-9 разрядов?? так примерно??
Re: ATmega8 и АЦП
Добавлено: Пт мар 19, 2010 10:31:40
GP1
+ питание на аналоговую часть через LC-фильтр
Re: ATmega8 и АЦП
Добавлено: Пт мар 19, 2010 12:13:59
DIMA040891
Ну вродн всё! Все большое спасибо, за уделённое время))))!!!!