| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| АЦП на ATmega16 помощ (C code) http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=2201 |
Страница 1 от 1 |
| Автор: | CorosanD [ Сря Апр 12, 2006 3:36 pm ] | |||||||||
| Заглавие: | АЦП на ATmega16 помощ (C code) | |||||||||
Значи идеята е следната ! АЦП, пак ATmega 16, канал 0, потенциометър на входа от 0 до Vcc..обаче явно не прочитам конвертираната стойност по правилния начин и немога да индицирам в изхода че има някакво конвертиране въобще... ако някой може да даде идея къде може да е грешката или каде съм изпуснал нещо ще съм благодарен...
|
||||||||||
| Автор: | TheHungry [ Сря Апр 12, 2006 3:44 pm ] |
| Заглавие: | |
#include <mega16.h> #define ADC_VREF_TYPE 0x40 // Read the AD conversion result unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input|ADC_VREF_TYPE; // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } // Declare your global variables here void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // ADC initialization // ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: AVCC pin // ADC Auto Trigger Source: Free Running ADMUX=ADC_VREF_TYPE; ADCSRA=0xA4; SFIOR&=0x1F; while (1) { // Place your code here }; } Така казва чичо Pavel Haiduc |
|
| Автор: | CorosanD [ Сря Апр 12, 2006 4:05 pm ] |
| Заглавие: | |
Ами проблема пак е в тоя регистър ADCW .... принципно такъв в ATMegata поне аз незнам да има ... другия вариант е да се дефинира някаде в Mega16.h файла обаче аз го нямам а и немога да го намеря..ако можеш да ми помогнеш да го намеря него може и да стане далаверата .. |
|
| Автор: | Реконструктор [ Сря Апр 12, 2006 5:03 pm ] |
| Заглавие: | |
като начало - какъв резултат ти трябва - 10 или 8 битов? |
|
| Автор: | CorosanD [ Сря Апр 12, 2006 5:27 pm ] |
| Заглавие: | |
Ами резултатът на АЦП-то е 10 битов мен ми трябва да го искарам на 8 битовия PORTD...като за начало.. иначе идеята е всички битове да ги изкарам през един извод...Примерно подавам нещо на входа на АЦП-то и на един светодиод получавам конвертирания цифров сигнал като цифрова поредица... |
|
| Автор: | CorosanD [ Сря Апр 12, 2006 10:20 pm ] |
| Заглавие: | |
Готово оправих го |
|
| Автор: | Реконструктор [ Чет Апр 13, 2006 9:38 am ] |
| Заглавие: | |
Браво. |
|
| Автор: | CorosanD [ Пет Апр 14, 2006 3:23 pm ] |
| Заглавие: | |
Има логика. Сега проблема е малко по различен и е от хардуерно естество. Значи подава се аналогов сигнал от микрофон той се усилва и се филтрира следтова от ниско честотен филтър за 3,4kHz ( за отделяне на говора ) след това сигнала се подава на входа на АЦП-то. Феноменът (поне за мен) е следния-> Когато микрофонът и след това фълтъра не са свързани към входа на АЦП-то тогава амплитудата на сигнала в изхода на филтъра е към 1V...проблемът възниква когато изхода на активния филтър го свържа директно към входа на АЦП-то...тогава сигналав изхода на филтъра изчезва |
|
| Автор: | CorosanD [ Нед Апр 16, 2006 3:41 pm ] |
| Заглавие: | |
Е никой ли не може да помогне ?! Браво |
|
| Автор: | setoy [ Пон Апр 17, 2006 9:15 am ] |
| Заглавие: | |
Ми дай да видим схемата де! А както работи с делител, защо не го оставиш така и да ме се занимаваш с глупости?? Че толкова ли е бързо АЦП-то на мегата, че да се справи със сигнал директно от мисрофон |
|
| Автор: | CorosanD [ Пон Апр 17, 2006 11:17 am ] |
| Заглавие: | |
При носеща на аналоговия сигнал 15kHz и тактова на ATMega-та 16Mhz с външен осцилатор дали е бавно ?! |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|