commit db9dccf2fb646fccc52e2ee1d4ddec62fc8838bb Author: hamx Date: Thu Nov 7 19:40:05 2024 +0100 init diff --git a/main.c b/main.c new file mode 100644 index 0000000..a0a6da3 --- /dev/null +++ b/main.c @@ -0,0 +1,72 @@ +#include +#include + +#define LENGTH 8 + +unsigned int sum = 0; // Suma liczb 8-bitowych, zapisana w zmiennej 16-bitowej +unsigned char rest = 0; +unsigned char result = 0; +unsigned char read[LENGTH] = {}; +unsigned char isFull = 0; +unsigned char index = 0; + +void config_ad(void) { + ADCON0 = 0; + ADCON1bits.PCFG = 0b100; + ADCON0bits.ADON = 1; +} + +void ad_go(void) { + ADCON0bits.GO = 1; +} + +void oblicz(void) { + sum = 0; + + for(int i = 0; i < LENGTH; i++) { + sum += read[i]; + } + + result = sum / LENGTH; + rest = sum % LENGTH; +} + +void print_results(void) { + printf("result: %u", result); + printf("rest: %u", rest); +} + + +void main(void) { + config_ad(); + + while(1) { + ad_go(); + while(ADCON0bits.GO) + { + + } + + read[index] = ADRES; + index++; + + if(!isFull && index == LENGTH - 1) { + isFull = 1; + } + + if(index == LENGTH - 1) { + index = 0; + } + + if(isFull) { + oblicz(); + } + print_results(); + + isFull = 0; + + } + + + return; +}