init
This commit is contained in:
72
main.c
Normal file
72
main.c
Normal file
@@ -0,0 +1,72 @@
|
||||
#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) {
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user