/*****************************************************************************/ /* 18F2550 Application Demo for usage of MCHPUSB Bootloader */ /* */ /* Author: Christian Stadler , spremembe Slavko Murko */ /* UPORABA ADC za VU meter */ /* Date: 18.08.2010 8.11.2011 */ /* */ /* */ /* */ /*****************************************************************************/ /* make compiler case sensitive */ #pragma case #include <18F2550.h> #device adc=10 #use delay(clock=20000000) /* systm clock is 20 MHz */ #build (reset=0x800, interrupt=0x808) //premik reset in inerrupt vektorjev zaradi prednaloženega Bootloaderja #org 0, 0x7FF {} //Bootloader je naložen nna naslovih od 0 do 0x7FF, // začetni naslov našega programa je lahko na 0x800 void main() { long ad_vrednost; short pisk; long pol_periode; setup_wdt(WDT_OFF); setup_adc_ports( ALL_ANALOG ); setup_adc( ADC_CLOCK_INTERNAL ); set_adc_channel( 0 ); while (TRUE) { ad_vrednost=read_adc(); if (ad_vrednost>250) {output_high(PIN_B0); pol_periode=8;} else output_low(PIN_B0); if (ad_vrednost>500) {output_high(PIN_B1); pol_periode=4;} else output_low(PIN_B1); if (ad_vrednost>750) {output_high(PIN_B2); pol_periode=2;} else output_low(PIN_B2); if (ad_vrednost>1000) {output_high(PIN_B3); pol_periode=1;} else output_low(PIN_B3); if (ad_vrednost>255) { if(pisk==1) pisk=0; else pisk=1; output_bit(PIN_C2,pisk); delay_ms(pol_periode); } } }