cleanup code

This commit is contained in:
Mats van Reenen 2021-01-22 16:54:55 +01:00
parent 250cfbdf2a
commit 147f08464a
10 changed files with 38 additions and 28 deletions

View File

@ -1,6 +1,7 @@
#include <stdint.h>
#include <ti/drivers/PWM.h>
#include "debug.h"
#include "global.h"
#include "MPPT.h"
#include "spi.h"
@ -8,7 +9,7 @@
#define PWM_MIN 0.001
#define PWM_MAX 0.9
uint8_t mppt_setpoint, mppt_setpointOverrite, mppt_vermogen;
uint8_t mppt_setpoint = 0xff, mppt_setpointOverrite, mppt_vermogen;
uint8_t *mppt_setpointP;
PWM_Handle mppt_pwm;
@ -42,11 +43,25 @@ void mppt_init(){
params.periodValue = 10; // 100 kHz
mppt_pwm = PWM_open(CONFIG_PWM_0, &params);
if (mppt_pwm == NULL) {
while (1);
ERROR("faild to open PWM");
return;
}
mppt_setpointP = &mppt_setpoint;
mppt_start();
// whit until it recevs a valid setpoint
while(mppt_setpoint > 250)
usleep(1e3);
// Update status
if(Status == INIT){
Status = MPPT_READY;
}else if(Status == NOODSTOP_READY){
Status = ALL_READY;
}else{
ERROR("invalid Status");
}
}
void mppt_setPWM(double d){
@ -134,6 +149,7 @@ void mppt_start(){
}
void mppt_deinit(){
mppt_setpoint = 0xff;
mppt_setPWM(0);
PWM_stop(mppt_pwm);
}

View File

@ -33,7 +33,7 @@ void comm_init(){
SPI_Params_init(&SPI_MSPTrans.params);
SPI_MSPTrans.interface = CONFIG_SPI_MASTER;
SPI_MSPTrans.cs = CONFIG_GPIO_CSMSP;
SPI_ADC.params.frameFormat = SPI_POL0_PHA0; // mode 0
SPI_MSPTrans.params.frameFormat = SPI_POL0_PHA0; // mode 0
SPI_MSPTrans.params.bitRate = 1E6; // 1 MHz
SPI_MSPTrans.trans.count = SPI_PACKET_LENGTH;
SPI_MSPTrans.trans.txBuf = &TransmitBuffer[0];
@ -86,3 +86,5 @@ void comm_init(){
usleep(SPI_INTERVAL);
}
}
//TODO: add uart code

View File

@ -1,11 +1,11 @@
#ifndef DEBUG_H
#define DEBUG_H
#define LOG(msg) ;
#define LOG(msg, ...) ;
#define ERROR(msg) LOG("ERROR: " msg)
#define WARN(msg) LOG("WARN: " msg)
#define DEBUG(msg) LOG("DEBUG: " msg)
#define INFO(msg) LOG("INFO: " msg)
#define ERROR(msg, ...) LOG("ERROR: " msg, ##__VA_ARGS__)
#define WARN(msg, ...) LOG("WARN: " msg, ##__VA_ARGS__)
#define DEBUG(msg, ...) LOG("DEBUG: " msg, ##__VA_ARGS__)
#define INFO(msg, ...) LOG("INFO: " msg, ##__VA_ARGS__)
#endif

View File

@ -4,7 +4,7 @@
#include <pthread.h>
#include "ti_drivers_config.h"
typedef enum {
typedef enum Status_t {
SLEEP,
INIT,
MPPT_READY,

View File

@ -51,12 +51,12 @@ void startSys(){
treads.noodstop = createSimplePTread(4, &noodstop_start);
}
void stopSys(){
//TODO: communication say what the reason for the emergency stop was if thare was one
// pthread_exit(treads.comm);
pthread_exit(treads.noodstop);
pthread_exit(treads.mppt);
treads.mppt = createSimplePTread(1, &mppt_deinit);
treads.noodstop = createSimplePTread(3, &noodstop_deinit);
}
void initISR(){
@ -83,6 +83,7 @@ void startSysISR(){
void * mainTask(void *arg){
Status_t lastState;
while(1){
INFO("system state changed from %s to %s", lastState, Status);
switch (Status){
case SLEEP:
stopSys();
@ -90,6 +91,9 @@ void * mainTask(void *arg){
case INIT:
startInit();
break;
case ALL_READY:
//TODO: say the system is ready
break;
case WORKING:
startSys();
break;
@ -112,5 +116,5 @@ int main(void){
treads.sysBeheer = createSimplePTread(1, mainTask);
BIOS_start(); // start the BIOS
while(1)
usleep(1E6);
sleep(10);
}

View File

@ -107,7 +107,7 @@ void noodstop_init(){
&& nood_maxwaardes.maxTempratuur >= 60 && nood_maxwaardes.maxTempratuur <= 120
&& nood_maxwaardes.maxVermogen <= 250
){
break; // stop the loop values are valid
break; // stop the loop, values are valid
}
usleep(100E3);
}
@ -123,11 +123,5 @@ void noodstop_init(){
}
void noodstop_start(){
// start the treath voor het uitlezen van de temptatuur
adcThread = createSimplePTread(2, &noodstop_tempratuurHandle);
}
void noodstop_deinit(){
// stop threads
pthread_exit(adcThread);
noodstop_tempratuurHandle();
}

View File

@ -10,7 +10,6 @@ void noodstop_snelhied(uint16_t snelhied);
void noodstop_init();
void noodstop_start();
void noodstop_deinit();
uint8_t noodstop_getTempratuur();
void noodstop_activeerNoodstop();

View File

@ -4,6 +4,7 @@
#include "debug.h"
SPI_Trans_t SPI_ADC;
uint8_t ADC_TxBuf[4];
uint8_t ADC_RxBuf[4];
@ -13,7 +14,7 @@ void SPI_Init(){
// init ADC
SPI_Params_init(&SPI_ADC.params);
SPI_ADC.interface = CONFIG_SPI_MASTER;
SPI_ADC.cs = CONFIG_GPIO_CSMSP;
SPI_ADC.cs = CONFIG_GPIO_CSADC;
SPI_ADC.params.frameFormat = SPI_POL0_PHA0; // mode 0
SPI_ADC.params.bitRate = 1E6; // 1 MHz
SPI_ADC.trans.count = 4;
@ -40,7 +41,7 @@ int SPI_trans(SPI_Trans_t *trans){
SPI_Handaler = &spih;
// open spi connection with paramaters of this one
spih = SPI_open(CONFIG_SPI_MASTER, &trans->params);
spih = SPI_open(trans->interface, &trans->params);
if (spih == NULL) {
ERROR("initialising SPI for communicating with the MSP\n");
return 1;

View File

@ -29,8 +29,6 @@ typedef struct SPI_Trans_t {
} SPI_Trans_t;
SPI_Handle *SPI_Handaler;
SPI_Trans_t SPI_ADC;
void SPI_Init();
uint16_t ADC_read(uint8_t ch);
int SPI_trans(SPI_Trans_t *trans);

View File

@ -1,4 +0,0 @@
void systeemBeheer(){
}