реклама на сайте
подробности

 
 
> ATMega16 и АЦП, настройка
mr_onnik
сообщение Nov 6 2007, 20:15
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 3-11-07
Пользователь №: 32 020



Имеется МК Mega 163, на вход ADC0 (PA0) которого подается изменяющееся напряжение 0...5 В;
AVcc и AREF соединен с Vcc, AGND соединен с GND.

В CodeVisionAVR пишу такой код:
Код
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | 0xff;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSR|=0x40;
// Wait for the AD conversion to complete
while ((ADCSR & 0x10)==0);
ADCSR|=0x10;
return ADCW;
}

//настройки портов

void main(void)
{ int a = 0;

   while(1)
   {
    a = (int)read_adc;
    PORTC.6 = 1;
    delay_ms(a);
    PORTC = 0x00;
    }
}


в результате светодион на шестом выводе порта С постоянно мигает с частотой примерно 0,5с. Наверное, снимается показание с внутреннего источника опорного напряжения, которое составляет примерно половину 5В.

Что неправильно сделано? Как сделать, чтобы частота мигания светодиода менялась в зависимости от подаваемого напряжения на ADC0?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
singlskv
сообщение Nov 7 2007, 19:41
Сообщение #2


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(mr_onnik @ Nov 6 2007, 23:15) *
.......................
Господа(товарисчи... кому как больше нравится...), хватит измываться над автором темы...

Автор,
полную схему со ВСЕМИ параметрами, полностью софт, и подробное описание того что Вы хотели
получить, в студию...

Тогда точно найдутся желающие Вам подсказать...
Go to the top of the page
 
+Quote Post
mr_onnik
сообщение Nov 8 2007, 21:22
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 3-11-07
Пользователь №: 32 020



Цитата(singlskv @ Nov 7 2007, 21:41) *
Автор,
полную схему со ВСЕМИ параметрами, полностью софт, и подробное описание того что Вы хотели
получить, в студию...

Прикрепленное изображение

Код
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.7a Evaluation
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 02.11.2007
Author  : Freeware, for evaluation and non-commercial use only
Company :
Comments:


Chip type           : ATmega163
Program type        : Application
Clock frequency     : 4,000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256
*****************************************************/

#include <mega163.h>  
#include <stdio.h>  
#include <stdlib.h>  
#include <io.h>
#include <stdint.h>  
#include <delay.h>  

#define F_CPU 4000000UL


// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSR|=0x40;
// Wait for the AD conversion to complete
while ((ADCSR & 0x10)==0);
ADCSR|=0x10;
return ADCW;
}


// ADC initialization
// ADC Clock frequency: 115,200 kHz
// ADC Voltage Reference: Int., cap. on AREF

                      
void init_avr(void)
{

PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0x00;

PORTC = 0x00;
DDRC = 0xF0;/* set port C pins 7-4 as outputs, 3-0 as inputs */

PORTD=0x00;
DDRD=0x0F;

// Global enable interrupts
#asm("sei")

}

// Declare your global variables here

void main(void)
{ unsigned int a = 0;
  
PORTD = 0x00;
PORTC = 0x00;
// Declare your local variables here

init_avr();

while (1)
      
      {
                 a = read_adc(0);                  
                 PORTC.6 = 1;  
                 delay_ms(a);
                 PORTC = 0x00;
                 delay_ms(a);
      
      
      };
}


Программа CodeVisionAVR.
Требуется сделать так, чтобы частота мигания светодиода прямопропорционально зависела от напряжения, подаваемого на ADC0. help.gif
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 8 2007, 23:53
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(mr_onnik @ Nov 9 2007, 00:22) *
Код
// ADC initialization
// ADC Clock frequency: 115,200 kHz
// ADC Voltage Reference: Int., cap. on AREF
А где код инициализации ADC ?

Вы там случаем битик ADEN выставить не забыли ?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mr_onnik   ATMega16 и АЦП   Nov 6 2007, 20:15
- - mdmitry   Цитата(mr_onnik @ Nov 6 2007, 23:15) Имее...   Nov 6 2007, 21:49
- - oran-be   А это - так задумано? Код ADMUX=adc_input | 0xff;...   Nov 7 2007, 06:50
|- - mr_onnik   Цитата(oran-be @ Nov 7 2007, 08:50) ...   Nov 7 2007, 08:30
- - SergeiCh   Цитата(mr_onnik @ Nov 7 2007, 03:15) a = ...   Nov 7 2007, 09:03
|- - IgorKossak   Цитата(SergeiCh @ Nov 7 2007, 11:03) (int...   Nov 7 2007, 09:33
|- - mr_onnik   Цитата(IgorKossak @ Nov 7 2007, 11:33) Ну...   Nov 7 2007, 10:09
||- - oran-be   Цитата(mr_onnik @ Nov 7 2007, 14:09) Испр...   Nov 7 2007, 10:36
|||- - mr_onnik   Цитата(oran-be @ Nov 7 2007, 12:36) ...   Nov 7 2007, 10:55
|||- - SergeiCh   Цитата(mr_onnik @ Nov 7 2007, 17:55) Подр...   Nov 7 2007, 11:44
|||- - oran-be   Цитата(mr_onnik @ Nov 7 2007, 14:55) Заса...   Nov 7 2007, 13:01
||- - SergeiCh   Цитата(mr_onnik @ Nov 7 2007, 17:09) Испр...   Nov 7 2007, 10:48
|- - SergeiCh   Цитата(IgorKossak @ Nov 7 2007, 16:33) Та...   Nov 7 2007, 10:19
- - oran-be   Да - кто первый заметит слона?   Nov 7 2007, 10:05
- - GDI   Вот что хорошо в CV, так это мастер нового проекта...   Nov 7 2007, 12:22
||- - mr_onnik   Цитата(singlskv @ Nov 9 2007, 01:53) А гд...   Nov 22 2007, 21:28
|- - SergeiCh   Цитата(mr_onnik @ Nov 9 2007, 04:22) Код#...   Nov 9 2007, 04:43
- - sergeeff Jr.   PWM организуй при помощи таймера...   Nov 8 2007, 22:15
- - mrKirill   Цитатаwhile (1) { a = read...   Nov 23 2007, 04:45
|- - Сергей Борщ   Цитата(mrKirill @ Nov 23 2007, 06:45) Есл...   Nov 23 2007, 10:25
|- - mrKirill   Цитата(Сергей Борщ @ Nov 23 2007, 16:25) ...   Nov 23 2007, 11:11
|- - Сергей Борщ   Цитата(mrKirill @ Nov 23 2007, 13:11) Есл...   Nov 23 2007, 11:26
- - defunct   Код#define ADC_CONTROL (1 << ADEN...   Nov 23 2007, 13:16
- - WHALE   defunct,в CV это не пройдет.Почему-то у него нет х...   Nov 23 2007, 15:14
- - defunct   Цитата(WHALE @ Nov 23 2007, 18:14) в CV э...   Nov 23 2007, 16:26


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01439 секунд с 7
ELECTRONIX ©2004-2016