Intial code push

This commit is contained in:
Sunseeker Lab A-216
2021-05-06 17:42:30 -04:00
parent fe095eada0
commit 47ce3522ea
612 changed files with 245803 additions and 0 deletions

105
Telem_Debug/Debug1/main.c Normal file
View File

@@ -0,0 +1,105 @@
#include <msp430.h>
/*
* main.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <msp430x54xa.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
#include <float.h>
#include "main.h"
// General Variables
volatile unsigned char status_flag = FALSE; //status flag set on timer B
// CAN Communication Variables
volatile unsigned char cancomm_flag = FALSE; //used for CAN transmission timing
volatile unsigned char send_can = FALSE; //used for CAN transmission timing
volatile unsigned char rcv_can = FALSE; //used for CAN transmission timing
volatile unsigned char can_full = FALSE; //used for CAN transmission status
volatile unsigned char ac_charge_mode = FALSE; //used for CAN transmission
volatile unsigned char dc_charge_mode = FALSE; //used for CAN transmission
volatile unsigned char charge_mode = 0x00; //used for CAN transmission
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
_DINT(); //disables interrupts
clock_init(); //Configure HF and LF clocks
timerB_init(); //init timer B
P8DIR |= BIT3; // P1.0 output
P8DIR |= BIT4; // P1.0 output
P8DIR |= BIT5; // P1.0 output
P8DIR |= BIT6; // P1.0 output
P8OUT &= ~BIT3; // Toggle P1.0
P8OUT &= ~BIT4; // Toggle P1.0
P8OUT &= ~BIT5; // Toggle P1.0
P8OUT &= ~BIT6; // Toggle P1.0
_EINT(); //enable global interrupts
while(1)
{
if(status_flag){
status_flag = FALSE;
P8OUT ^= BIT3; // Toggle P1.0
P8OUT ^= BIT6; // Toggle P1.0
}
// __delay_cycles(100000); // Delay
}
return 0;
}
/*
* Initialise Timer B
* - Provides timer tick timebase at 100 Hz
*/
void timerB_init( void )
{
TBCTL = CNTL_0 | TBSSEL_1 | ID_3 | TBCLR; // ACLK/8, clear TBR
TBCCR0 = (ACLK_RATE/8/TICK_RATE); // Set timer to count to this value = TICK_RATE overflow
TBCCTL0 = CCIE; // Enable CCR0 interrrupt
TBCTL |= MC_1; // Set timer to 'up' count mode
}
/*
* Timer B CCR0 Interrupt Service Routine
* - Interrupts on Timer B CCR0 match at 10Hz
* - Sets Time_Flag variable
*/
/*
* GNU interropt symantics
* interrupt(TIMERB0_VECTOR) timer_b0(void)
*/
#pragma vector = TIMERB0_VECTOR
__interrupt void timer_b0(void)
{
static unsigned int status_count = TELEM_STATUS_COUNT;
static unsigned int cancomm_count = CAN_COMMS_COUNT;
// Primary System Heartbeat
status_count--;
if( status_count == 0 )
{
status_count = TELEM_STATUS_COUNT;
status_flag = TRUE;
}
// Periodic CAN Satus Transmission
if(send_can) cancomm_count--;
if( cancomm_count == 0 )
{
cancomm_count = CAN_COMMS_COUNT;
cancomm_flag = TRUE;
}
}