From 728c98d9870d472a7497f23a864ef37ed6f46169 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Mon, 29 Apr 2019 11:28:55 -0400 Subject: delay draft --- Makefile | 1 + delay.c | 37 +++++++++++++++++++++++++++++++++++++ delay.h | 27 +++++++++++++++++++++++++++ main.c | 8 ++++++-- 4 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 delay.c create mode 100644 delay.h diff --git a/Makefile b/Makefile index 54bba86..f56590a 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ CFLAGS = -mmcu=msp430g2553 -std=gnu99 \ -Os CSRC = board.c \ + delay.c \ i2c.c \ temp.c \ main.c diff --git a/delay.c b/delay.c new file mode 100644 index 0000000..a259fe3 --- /dev/null +++ b/delay.c @@ -0,0 +1,37 @@ +/** + * @file delay.c + * Delay support using a timer. + * + * Copyright (C) 2019 Clyne Sullivan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "board.h" + +static unsigned int delayTicks = 0; + +void delayInit(void) +{ + TACCTL0 |= CCIE; + TACCR0 = 1000; + TACTL |= TASSEL_1 | MC_1; +} + +__attribute__((__interrupt__(TIMER0_A0_VECTOR))) +static void delayInterruptHandler(void) +{ + P1OUT ^= LED; + delayTicks++; +} diff --git a/delay.h b/delay.h new file mode 100644 index 0000000..1a46286 --- /dev/null +++ b/delay.h @@ -0,0 +1,27 @@ +/** + * @file delay.h + * Delay support using a timer. + * + * Copyright (C) 2019 Clyne Sullivan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DELAY_H_ +#define DELAY_H_ + +void delayInit(void); + +#endif // DELAY_H_ + diff --git a/main.c b/main.c index 257cebf..8a4b74a 100644 --- a/main.c +++ b/main.c @@ -19,6 +19,7 @@ */ #include "board.h" +#include "delay.h" #include "temp.h" void main(void) @@ -26,9 +27,12 @@ void main(void) // Prepare processor and IO boardInit(); + delayInit(); + __enable_interrupt(); + // Prepare temperature sensor - if (tempInit() != 0) - while (1); // Sensor error, halt + //if (tempInit() != 0) + // while (1); // Sensor error, halt while (1); } -- cgit v1.2.3