/*
 * File:   main.c
 * Author: ericjmartin
 *
 * Created on November 11, 2016, 8:45 AM
 */


#include <xc.h>
#include <stdbool.h>
#include <stdio.h>
#include "system.h"
#include "serial.h"
#include "adc1.h"

void readBothADC(uint16_t * sine, uint16_t * cosine);


int main(void) {
    initSystem();
    
    serInit();

    ADC1_Initialize();
    
    char * welcomeMSG = "SledTiltSensor Rev 0.1\r\n";
    serPutString(welcomeMSG);
    
    
    unsigned int i =0;
    uint16_t _sine, _cosine;
    char buff[128];
    
    while (true) {
    
        i       = 0;
        _sine   = 0;
        _cosine = 0;
        
        readBothADC(&_sine, &_cosine);
        
        sprintf(buff, "%04i %04i\r\n", _sine, _cosine);
        
        serPutString(buff);
        
        while (i< 1000)
        {i++;}
    }
    
    return 0;
}

void readBothADC(uint16_t * sine, uint16_t * cosine) {
    
    ADC1_ChannelSelect(ADC1_CHANNEL_AN10);
    ADC1_Start();
    while (!ADC1_IsConversionComplete());
    AD1CON1bits.DONE = 0;
    *sine = ADC1_ConversionResultGet();
    
    ADC1_ChannelSelect(ADC1_CHANNEL_AN11);
    ADC1_Start();
    while (!ADC1_IsConversionComplete());
    AD1CON1bits.DONE = 0;
    *cosine = ADC1_ConversionResultGet();
    
}
