55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
|
|
/* PeriodicSysTickInts.c
|
||
|
|
* Jonathan Valvano
|
||
|
|
* July 19, 2025
|
||
|
|
* Derived from timx_timer_mode_periodic_sleep_LP_MSPM0G3507_nortos_ticlang
|
||
|
|
* gpio_toggle_output_LP_MSPM0G3507_nortos_ticlang
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
|
||
|
|
#include <ti/devices/msp/msp.h>
|
||
|
|
#include "../inc/LaunchPad.h"
|
||
|
|
#include "../inc/Clock.h"
|
||
|
|
// PA0 is red LED1, index 0 in IOMUX PINCM table
|
||
|
|
// PB22 is BLUE LED2, index 49 in IOMUX PINCM table
|
||
|
|
// PB26 is RED LED2, index 56 in IOMUX PINCM table
|
||
|
|
// PB27 is GREEN LED2, index 57 in IOMUX PINCM table
|
||
|
|
// PA18 is S1 positive logic switch, index 39 in IOMUX PINCM table
|
||
|
|
// PB21 is S2 negative logic switch, index 48 in IOMUX PINCM table
|
||
|
|
// DOUTTGL31_0 is used so the code is thread-safe.
|
||
|
|
|
||
|
|
uint32_t Count;
|
||
|
|
void SysTick_IntArm(uint32_t period, uint32_t priority){
|
||
|
|
SysTick->CTRL = 0x00; // disable during initialization
|
||
|
|
SysTick->LOAD = period-1; // set reload register
|
||
|
|
//The ARM Cortex-M0+ only implements the most significant 2 bits of each 8-bit priority field (giving the 4 priority levels).
|
||
|
|
SCB->SHP[1] = (SCB->SHP[1]&(~0xC0000000))|priority<<30; // set priority (bits 31,30)
|
||
|
|
SysTick->VAL = 0; // clear count, cause reload
|
||
|
|
SysTick->CTRL = 0x07; // Enable SysTick IRQ and SysTick Timer
|
||
|
|
}
|
||
|
|
#define PA12INDEX 33
|
||
|
|
|
||
|
|
int main(void){
|
||
|
|
__disable_irq();
|
||
|
|
LaunchPad_Init();
|
||
|
|
// Clock_Init(OSCFREQ32MHZ);
|
||
|
|
Clock_Init40MHz();
|
||
|
|
// Clock_Init80MHz(0);
|
||
|
|
Count = 0;
|
||
|
|
// SysTick_IntArm(16000000,2); //32M/16M = 2Hz
|
||
|
|
SysTick_IntArm(400000,2); //40M/400k = 100Hz
|
||
|
|
// SysTick_IntArm(800000,2); //80M/800k = 100Hz
|
||
|
|
__enable_irq();
|
||
|
|
while(1){
|
||
|
|
GPIOA->DOUTTGL31_0 = RED1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void SysTick_Handler(void){
|
||
|
|
GPIOB->DOUTTGL31_0 = GREEN; // toggle PB27
|
||
|
|
GPIOB->DOUTTGL31_0 = GREEN; // toggle PB27
|
||
|
|
Count++;
|
||
|
|
GPIOB->DOUTTGL31_0 = GREEN; // toggle PB27
|
||
|
|
}
|
||
|
|
|
||
|
|
|