 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
trully1 Član

Pridružen-a: Pet 14 Nov 2003 20:20 Prispevkov: 216 Aktiv.: 0.91 Kraj: Železniki
|
Objavljeno: Tor Sep 05, 2006 6:09 pm Naslov sporočila: Težave z AD pretvorbo in PIC18F1220 |
|
|
Zdravo
Zanima me ali ima kdo primer kode z uporablenim PIC18F1220 oziroma katerim koli 18Fxxxx. Pravkar sem iz asemblerja (pici 16F) prešel na C (microchipov C18-). Težave imam z ADC modulom. Zadeva kar noče začeti pravilno delovati. Poiskusil sem že vse možne nastavitve, vendar mi še kar povzroča sive lase.
Sedaj pa ne vem ali imam napako v programu ali pa v vezju(ne verjamem). Na žalost pa debugerja nimam, da bi lahko spremljal, kaj se v resnici dogaja.
Na netu sem iskal, pa nisem dobil nič primernega.
LP Matjaž
|
|
Nazaj na vrh |
|
 |
LoLek Član

Pridružen-a: Sre 25 Feb 2004 12:46 Prispevkov: 343 Aktiv.: 1.45
|
|
Nazaj na vrh |
|
 |
trully1 Član

Pridružen-a: Pet 14 Nov 2003 20:20 Prispevkov: 216 Aktiv.: 0.91 Kraj: Železniki
|
Objavljeno: Tor Sep 05, 2006 8:23 pm Naslov sporočila: |
|
|
Zdravo
Hvala za kodo. Vidim, da si uporabu knjižnice za ADC. Jaz sem napisal kar kot v asemblerju tako da bom probal še na ta način.
Zanima pa me koliko imaš frekvenco oscilatorja in v programu ni definiranega smeri (I/O) porta. Če se ne motim mora bit deklariran kot vhod. Ali je to nastavljeno že v knjižnici ko izbereš CH0????
LP
|
|
Nazaj na vrh |
|
 |
LoLek Član

Pridružen-a: Sre 25 Feb 2004 12:46 Prispevkov: 343 Aktiv.: 1.45
|
Objavljeno: Sre Sep 06, 2006 8:22 am Naslov sporočila: |
|
|
Funkcija SetChanADC() je definirana:
Koda: |
Function: Select the channel used as input to the A/D converter.
Include: adc.h
Prototype: void SetChanADC( unsigned char channel );
Arguments: channel
One of the following values (defined in adc.h):
ADC_CH0 Channel 0
ADC_CH1 Channel 1
ADC_CH2 Channel 2
ADC_CH3 Channel 3
ADC_CH4 Channel 4
ADC_CH5 Channel 5
ADC_CH6 Channel 6
ADC_CH7 Channel 7
ADC_CH8 Channel 8
ADC_CH9 Channel 9
ADC_CH10 Channel 10
ADC_CH11 Channel 11
Remarks: Selects the pin that will be used as input to the A/D converter.
File Name: adcsetch.c
Code Example: SetChanADC( ADC_CH0 );
|
Se pravi, da z njo nastaviš vhodni pin za ADC.
To je pa funkcija:
Koda: |
/* $Id: adcsetch.c,v 1.2 2004/02/10 21:01:55 sealep Exp $ */
#include <p18cxxx.h>
#include <adc.h>
/********************************************************************
* Function Name: SetChanADC *
* Return Value: void *
* Parameters: channel: channel selection *
* Description: This routine sets the A/D to the specified *
* channel *
* Notes: The bit definitions for channel can be found *
* in the adc.h file. *
********************************************************************/
void SetChanADC(unsigned char channel)
{
#ifdef ADC_INTERFACE_OLD
ADCON0 = (channel & 0b00111000) |
(ADCON0 & 0b11000111);
#else
ADCON0 = ((channel >> 1) & 0b00111100) |
(ADCON0 & 0b11000011);
#endif
}
|
Mislim, da sem imel 20MHz quartz.
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|