CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

16F628 adc error

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
adrianrb
Guest







16F628 adc error
PostPosted: Tue Jan 09, 2007 5:56 am     Reply with quote

Hi all!

I´m trying to use the ADC ports from a PIC16F628, just like I can
do in 16F88, but I´m getting erros. Could someone help me?

Code (works fine in 16F88):
<pre>
#include <16F628A> // Define processador
#include "..\mudancas.h" // minha personalizacao

#fuses XT, NOWDT, NOPROTECT, NOPUT, NOLVP, NOBROWNOUT//, NOCPD, NOFCMEN, NOIESO, NOMCLR
#use delay(clock=4000000) // Informa o clock para rotinas de tempo.

#use FAST_IO(A) // portA sob meu controle
#use FAST_IO(B) // portB sob meu controle

#byte porta = 5 // endereco do port a
#byte portb = 6 // portb no endereco do port b

#bit ENB = portb.4 // sinal ENABLE
#bit RS = portb.5 // sinal RS

#define delay 500

////////////////////////////////////////////////////////////////////////////
// Prototipos obrigatorios com ";" no final.

void Inicializa(void); // nao recebem e nem devolve, valores
void Limpa(void);
void Mensagem(void);

void Linha1(char coluna); // recebem um char, ja indicando o nome
void Linha2(char coluna);

///////////////////////////////////////////////////////////////////////////
// Declaracao de variaveis em RAM
char i, posicao;

char MensRam [32]; // devo copiar da ROM para a RAM porque
// no pic nao posso fazer ponteiros para
// a memoria ROM.

//byte const Mensg_1 [33] = { "Ola Mundo!" };

char d[4] = {'0', '0', '0', '0'};
char num;

// Funções auxiliares
#include "..\util.c"

// Programa principal
void main()
{
TRISB(0); // PortB: Saida dados LCD

RS = 0;
ENB = 0;

Inicializa(); // inicializa o portb
for(;;)
{
// Leitura da porta analógica
TrisA(1);

setup_adc_ports(0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(PIN_A0);

num = read_adc();

setup_adc(ADC_OFF);

// Converte o valor num vetor
num2vet(num);

TrisA(0);

// Escreve o valor no LCD
for (i = 0; i < 4; i++)
MensRam[i] = d[i];

Mensagem(); // escrevo a mensagem
Delay_Ms(delay); // espero 1 seg
Limpa(); // limpo o portb

Delay_Ms(delay);
}
}
</pre>
Errors:

Executing: "C:\CCSC\Ccsc.exe" "lcd_rom.c" +FM +DF +LN +T -A +M +Z +Y=9 +EA
*** Error 12 "C:\Daysoft\Projetos\Pic\Testes\C\LCD1\lcd_rom.c" Line 58(9,24): Undefined identifier setup_adc_ports
*** Error 12 "C:\Daysoft\Projetos\Pic\Testes\C\LCD1\lcd_rom.c" Line 59(9,18): Undefined identifier setup_adc
*** Error 12 "C:\Daysoft\Projetos\Pic\Testes\C\LCD1\lcd_rom.c" Line 60(9,24): Undefined identifier set_adc_channel
*** Error 12 "C:\Daysoft\Projetos\Pic\Testes\C\LCD1\lcd_rom.c" Line 62(11,19): Undefined identifier read_adc
*** Error 12 "C:\Daysoft\Projetos\Pic\Testes\C\LCD1\lcd_rom.c" Line 64(9,18): Undefined identifier setup_adc
5 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Tue Jan 09 09:52:59 2007

Why compiler doesn´t find the functions *adc*?

Tks in advance,

Adrian
adrian



Joined: 08 Sep 2003
Posts: 92
Location: Glasgow, UK

View user's profile Send private message

Re: 16F628 adc error
PostPosted: Tue Jan 09, 2007 6:47 am     Reply with quote

adrianrb wrote:
Hi all!

I´m trying to use the ADC ports from a PIC16F628, just like I can
do in 16F88, but I´m getting erros. Could someone help me?


Well your first clue should be this
Quote:

Undefined identifier setup_adc_ports
Undefined identifier setup_adc
Undefined identifier set_adc_channel
Undefined identifier read_adc
Undefined identifier setup_adc


Have a look at the CCs header files.
The 16F88 will have this line somewhere in 16F88.h header file
////////////////////////////////////////////////////////////////// ADC
Do you recognise the functions underneath?

Now try and find this line in the 16F628.h header file.
Hint it isn't there - the 16F628 doesn't have an ADC hence the errors.
adrianrb
Guest







ok, but I´m get confused...
PostPosted: Tue Jan 09, 2007 7:11 am     Reply with quote

Adrian too??? Nice... 8-)

I get confused ´cause 16F628 datasheet shows port AN0, AN1...,
but no ADC at all...

Tks for your reply...

I´ll search for another chip.

Adrian
Ttelmah
Guest







PostPosted: Tue Jan 09, 2007 7:56 am     Reply with quote

The CCP module (which the 628 does have), also uses analog input pins...

Best Wishes
adrian



Joined: 08 Sep 2003
Posts: 92
Location: Glasgow, UK

View user's profile Send private message

Re: ok, but I´m get confused...
PostPosted: Wed Jan 10, 2007 6:10 am     Reply with quote

adrianrb wrote:

I get confused ´cause 16F628 datasheet shows port AN0, AN1...,
but no ADC at all...


If you look at Table 2-1, you will see that they refer to the Comparator inputs
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group