#include <18F4680.h> //PIC 18F4680 include Datei einfügen #device adc=8 #use delay(clock=4000000) //Geschwindigkeit des Oszillators #fuses XT,NOWDT //Oszillatoreinstellungen und aussschalten des Watch-Dog-Timers int wert=0; #INT_RTCC void Timer0_Interrupt_Service_Vector() { read_adc(ADC_START_ONLY); wert=read_adc(ADC_READ_ONLY); //ADC wird ausgelesen und in die Variable "wert" geschrieben } void main () { setup_adc_ports(PIN_A0); //ADC-Eingangsport RA 0 setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); enable_interrupts(INT_RTCC); // Interrupt für den Timer anmelden enable_interrupts(GLOBAL); // Interrupts erlauben setup_timer_0(RTCC_INTERNAL | RTCC_DIV_1); // Timer0 konfigurieren while(true){ //read_adc(ADC_START_ONLY); if (wert==0) { //Wenn wert = 0 dann alle LED's aus output_low(PIN_D6); output_low(PIN_D7); output_low(PIN_B0); output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=1 && wert<=26) { //Wenn wert zwischen 1 - 26: 1 LED output_high(PIN_D6); output_low(PIN_D7); output_low(PIN_B0); output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=26 && wert<=51) { //Wenn wert zwischen 26 - 51: 2 LED output_high(PIN_D6); output_high(PIN_D7); output_low(PIN_B0); output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=51 && wert<=77) { //Wenn wert zwischen 51 - 77: 3 LED output_high(PIN_D6); output_high(PIN_D7); output_high(PIN_B0); output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=77 && wert<=102) { //Wenn wert zwischen 77 - 102: 4 LED output_high(PIN_D6); output_high(PIN_D7); output_high(PIN_B0); output_high(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=102 && wert<=128) { //Wenn wert zwischen 102 - 128: 5 LED output_high(PIN_D6); output_high(PIN_D7); output_high(PIN_B0); output_high(PIN_B1); output_high(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=128 && wert<=153) { //Wenn wert zwischen 128 - 153: 6 LED output_high(PIN_D6); output_high(PIN_D7); output_high(PIN_B0); output_high(PIN_B1); output_high(PIN_B2); output_high(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=153 && wert<=179) { //Wenn wert zwischen 153 - 179: 7 LED output_high(PIN_D6); output_high(PIN_D7); output_high(PIN_B0); output_high(PIN_B1); output_high(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_low(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=179 && wert<=204) { //Wenn wert zwischen 179 - 204: 8 LED output_high(PIN_D6); output_high(PIN_D7); output_high(PIN_B0); output_high(PIN_B1); output_high(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_high(PIN_B5); output_low(PIN_D5); output_low(PIN_D4); } else if (wert>=204 && wert<=230) { //Wenn wert zwischen 204 - 230: 9 LED output_high(PIN_D6); output_high(PIN_D7); output_high(PIN_B0); output_high(PIN_B1); output_high(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_high(PIN_B5); output_high(PIN_D5); output_low(PIN_D4); } else if (wert>=230 && wert<=255) { //Wenn wert zwischen 230 - 255: 10 LED output_high(PIN_D6); output_high(PIN_D7); output_high(PIN_B0); output_high(PIN_B1); output_high(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_high(PIN_B5); output_high(PIN_D5); output_high(PIN_D4); } } }