Analogove vstupy PIC18F45k22

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Ladin
Příspěvky: 32
Registrován: 07 dub 2015, 00:00

Analogove vstupy PIC18F45k22

#1 Příspěvek od Ladin »

Ahoj,

po nejake dobe bych potreboval radu profiku. 8-) Mam pic18F45k22. Nektere piny funguji jako vstupy, nektere ne. Jedna se zrejme o nastaveni procesoru nebo vypnuti nejakych komparatoru. Potrebuji zprovoznit vstup AN8 (pinB2) a AN9(pinB3). Vzhledem k tomu, ze jsem samouk, dostal jsem se do slepe ulice, nevim jak na to. Prekladac nehlasi chybu, ale jakmile se ma pecist hodnota AN8, sekne se program, ceka na bit GO, ktery neprichazi. TRIS a ANSEL mam zapnuty. Zrejme mi tedy uchazi neco dalsiho. Config jsem oslehl z netu, mozna je chyba v nem?
Prosim poradte!

vynatky z kodu:

Kód: Vybrat vše

#pragma config FOSC = INTIO7    
//#pragma config PLLCFG = OFF
#pragma config PLLCFG = ON     
//#pragma config PRICLKEN = OFF
#pragma config PRICLKEN = ON   
#pragma config FCMEN = OFF     
#pragma config IESO = OFF       

// CONFIG2L
#pragma config PWRTEN = OFF     
#pragma config BOREN = SBORDIS 
#pragma config BORV = 190       
// CONFIG2H
#pragma config WDTEN = OFF     
#pragma config WDTPS = 32768   

// CONFIG3H
#pragma config CCP2MX = PORTC1 
#pragma config PBADEN = ON     
#pragma config CCP3MX = PORTB5 
#pragma config HFOFST = ON     
#pragma config T3CMX = PORTC0   
#pragma config P2BMX = PORTD2 
#pragma config MCLRE = INTMCLR

#pragma config STVREN = ON     
#pragma config LVP = OFF       
#pragma config XINST = OFF
.
.
.
TRISBbits.TRISB2 = 1;                            //input
TRISBbits.TRISB3 = 1;                            //
ANSELBbits.ANSB2 = 1;                           //analog AN8
ANSELBbits.ANSB3 = 1;                           //analog AN9

.
.
.
ADCON0 = 0b00100001;                            //AN8 RB2   temp1
                    __delay_us(10);                               
                    GO = 1;
                    while (GO) continue;                           
                    temp1 = ADRES;
.
.
.
ADCON0 = 0b00100101;                            //AN9 RB3   temp2
                    __delay_us(10);                                 
                    GO = 1;
                    while (GO) continue;                           
                    temp1 = ADRES;
.
.
.
Uživatelský avatar
Jeejda_teda_puvodne
Příspěvky: 142
Registrován: 08 dub 2012, 00:00

#2 Příspěvek od Jeejda_teda_puvodne »

Naposledy upravil(a) Jeejda_teda_puvodne dne 25 říj 2016, 20:06, celkem upraveno 1 x.
Uživatelský avatar
Ladin
Příspěvky: 32
Registrován: 07 dub 2015, 00:00

#3 Příspěvek od Ladin »

Máš pravdu nezbylo než to cele přelouskat. Já se domníval, že se tak pici od sebe nelišej. Tady byl zádrhel, že se nastavuje i ADCON2, což u všech předešlích picu vubec neexistuje.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“