L
lionkid
Guest
Hi all!
Ini adalah pertama topik karena
saya baru dalam pemrograman PIC.Saya memiliki pengetahuan dan C langage i wanna menangani perangkat baru yang merupakan PIC.
I've done hardware programmer Schaer dan saya gunakan untuk pemrograman Winpic kode saya, tetapi tampaknya itu tidak bekerja!Saya
telah diuji dengan my pic dipimpin berkedip dan bekerja.Jadi,
saya yakin bahwa masalah ini disebabkan oleh ADC menggunakan ...
Berikut ini adalah kode saya (dicampur dengan Perancis, karena
saya Perancis):
Kode:
# include <p18f4525.h>
# include <adc.h>
# include <delays.h># pragma config WDT = OFFvoid main (void)
(
int hasil = 0;
float tension = 0;
Konfigurasi /**************** DE L'OSCILLATEUR DU PIC *********************/OSCCONbits.SCS1 = 1; / / Penggunaan internal osilator 8Mhz pada frekuensi
OSCCONbits.SCS0 = 1; / / utilisation de l'oscillateur Interne du PICOSCCONbits.IRCF0 = 1; / /
OSCCONbits.IRCF1 = 1; / / keseringan d'utilisation de l'oscillateur = 8Mhz.
OSCCONbits.IRCF2 = 1; / //************************************************* ***************************/TRISEbits.TRISE0 = 1; / / Configure RE0 en la patte selera pour le capteur de lumičre (AN5), RE0 sebagai masukan untuk sensor lampu
TRISEbits.TRISE1 = 0; / / Configure en la patte RE1 serangan pour la LED.
(AN6), RE1 sebagai output untuk LED.OpenADC (ADC_FOSC_2 & ADC_RIGHT_JUST & ADC_12_TAD,
ADC_CH5 & ADC_INT_OFF & ADC_REF_VDD_VSS,
ADC_6ANA); / / Buka ADC di Channel 5 (RE0, AN5) dengan 5 V tingkat referensi (= Vdd) dan 0V sebagai Vss.
sementara (1)
(
Delay10TCYx (5);
ConvertADC ();
sementara (BusyADC ());
hasil = ReadADC ();
ketegangan = (hasil * 5) / 1023;
if (ketegangan> = 1) PORTEbits.RE1 = 1; / / Allume la si LED activitée detectée sur CAN, LED HIDUP jika Voltase yang diberikan oleh sensor lebih besar daripada 1Volt.
if (ketegangan <1) PORTEbits.RE1 = 0; / / Eteint la si LED ketegangan inférieure ŕ 1Volt, LED MATI sebaliknya.
)
CloseADC (); / / Kenyataannya, yang tidak pernah ADC ditutup karena masalah sementara (1) ...
)
Ini adalah pertama topik karena
saya baru dalam pemrograman PIC.Saya memiliki pengetahuan dan C langage i wanna menangani perangkat baru yang merupakan PIC.
I've done hardware programmer Schaer dan saya gunakan untuk pemrograman Winpic kode saya, tetapi tampaknya itu tidak bekerja!Saya
telah diuji dengan my pic dipimpin berkedip dan bekerja.Jadi,
saya yakin bahwa masalah ini disebabkan oleh ADC menggunakan ...
Berikut ini adalah kode saya (dicampur dengan Perancis, karena
saya Perancis):
Kode:
# include <p18f4525.h>
# include <adc.h>
# include <delays.h># pragma config WDT = OFFvoid main (void)
(
int hasil = 0;
float tension = 0;
Konfigurasi /**************** DE L'OSCILLATEUR DU PIC *********************/OSCCONbits.SCS1 = 1; / / Penggunaan internal osilator 8Mhz pada frekuensi
OSCCONbits.SCS0 = 1; / / utilisation de l'oscillateur Interne du PICOSCCONbits.IRCF0 = 1; / /
OSCCONbits.IRCF1 = 1; / / keseringan d'utilisation de l'oscillateur = 8Mhz.
OSCCONbits.IRCF2 = 1; / //************************************************* ***************************/TRISEbits.TRISE0 = 1; / / Configure RE0 en la patte selera pour le capteur de lumičre (AN5), RE0 sebagai masukan untuk sensor lampu
TRISEbits.TRISE1 = 0; / / Configure en la patte RE1 serangan pour la LED.
(AN6), RE1 sebagai output untuk LED.OpenADC (ADC_FOSC_2 & ADC_RIGHT_JUST & ADC_12_TAD,
ADC_CH5 & ADC_INT_OFF & ADC_REF_VDD_VSS,
ADC_6ANA); / / Buka ADC di Channel 5 (RE0, AN5) dengan 5 V tingkat referensi (= Vdd) dan 0V sebagai Vss.
sementara (1)
(
Delay10TCYx (5);
ConvertADC ();
sementara (BusyADC ());
hasil = ReadADC ();
ketegangan = (hasil * 5) / 1023;
if (ketegangan> = 1) PORTEbits.RE1 = 1; / / Allume la si LED activitée detectée sur CAN, LED HIDUP jika Voltase yang diberikan oleh sensor lebih besar daripada 1Volt.
if (ketegangan <1) PORTEbits.RE1 = 0; / / Eteint la si LED ketegangan inférieure ŕ 1Volt, LED MATI sebaliknya.
)
CloseADC (); / / Kenyataannya, yang tidak pernah ADC ditutup karena masalah sementara (1) ...
)