This repository has been archived on 2025-01-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
PM2_projekt/main.c
2024-11-17 12:28:15 +01:00

74 lines
1.2 KiB
C

#include <xc.h>
#include <stdio.h>
#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);
void ad_go(void);
void oblicz(void);
void print_results(void);
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;
}
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);
}