00001
00002
00003
00004
00005
00006 #include "piccolo_all.h"
00007
00027
00028 #if !defined(USE_INTERRUPT)
00029 #error "Nincs definiálva az USE_INTERRUPT szimbólum!"
00030 #endif //USE_INTERRUPT
00031 #if !defined(USE_USB)
00032 #error "Nincs definiálva az USE_USB szimbólum!"
00033 #endif //USE_USB
00034 #if !defined(__18F14K50)
00035 #error "Ez a program PIC18F14K50 mikrovezérlőre készült!"
00036 #endif //__18F14K50
00037
00038
00039 #pragma interrupt hi_isr
00040 void hi_isr() {
00041 USBDeviceTasks();
00042 }
00043
00044 #pragma interruptlow lo_isr
00045 void lo_isr() {
00046 }
00047
00052 void InitADC(void) {
00053 CONFIG_AN10_AS_ANALOG();
00054 CONFIG_AN11_AS_ANALOG();
00055 ADCON0=0x28;
00056 ADCON1=0;
00057 ADCON2=0xBE;
00058 ADCON0bits.ADON=1;
00059 }
00060
00065 unsigned int ReadADC(unsigned char chan) {
00066 ChangeBits(ADCON0, chan<<2, 0b00111100);
00067 ADCON0bits.GO = 1;
00068 while (ADCON0bits.NOT_DONE);
00069 return (((unsigned int)ADRESH)<<8)|(ADRESL);
00070 }
00071
00072 void main(void) {
00073 unsigned int adat;
00074 char c;
00075 InitializeSystem();
00076 InitADC();
00077 REFCON0=FVR_ENABLE|FVR1S_2048;
00078 while(!FVR_STATUS);
00079 REFCON1=DAC_ENABLE |
00080 D1LPS_LO |
00081 DACOUT_DISABLE |
00082 D1PSS_FVR |
00083 D1NSS_VSS;
00084 REFCON2=0x10;
00085 while (!usb_cdc_kbhit()) {
00086 ProcessIO();
00087 }
00088 outString("PICCOLO-14K50 adc.c program\n");
00089 while (1) {
00090
00091 do {
00092 c=usb_cdc_getc();
00093 } while (c!='#');
00094 c=usb_cdc_getc();
00095 usb_cdc_putc(c);
00096 switch (c) {
00097 case 'A':
00098 ADCON0=get2hex();
00099 ADCON1=get2hex();
00100 ADCON2=get2hex();
00101 break;
00102 case 'D':
00103 LEDport=get2hex();
00104 break;
00105 case 'H':
00106 outString("elp:\n");
00107 outString("#Akkmmnn - ADC konfigurálása\n");
00108 outString("#Dnn - LEDport beállítása\n");
00109 outString("#H - help kiírása\n");
00110 outString("#L - LED villogtatás tiltás/engedélyezés\n");
00111 outString("#Mnn - ADC(nn) csatorna kiolvasása\n");
00112 outString("#Vkkmmnn - VREF modul konfigurálása\n");
00113 break;
00114 case 'L':
00115 BlinkUSBStatus_enabled=!BlinkUSBStatus_enabled;
00116 if (BlinkUSBStatus_enabled) {
00117 usb_cdc_putc('1');
00118 } else {
00119 usb_cdc_putc('0');
00120 }
00121 break;
00122 case 'M':
00123 c=get2hex();
00124 usb_cdc_putc(' ');
00125 adat=ReadADC(c);
00126 out4hex(adat);
00127 break;
00128 case 'V':
00129 REFCON0=get2hex();
00130 REFCON1=get2hex();
00131 REFCON2=get2hex();
00132 break;
00133 }
00134 outString("\n");
00135 }
00136 }