Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "msp.h"
- #define SYSTICK_STCSR (*((volatile unsigned long *)0xE000E010))
- #define SYSTICK_STRVR (*((volatile unsigned long *)0xE000E014))
- #define SYSTICK_STCVR (*((volatile unsigned long *)0xE000E018))
- void SysTick_Init(void);
- void SysTick_wait(uint32_t delay);
- void SysTick_wait1ms(uint32_t delay);
- void Port_Init(void);
- unsigned char led;
- int main(void) {
- SysTick_Init();
- Port_Init();
- led = 0x01;
- while (1) {
- P2OUT = led;
- SysTick_wait1ms(1000);
- P2OUT = 0x00;
- SysTick_wait1ms(1000);
- }
- }
- void SysTick_Init(void) {
- SYSTICK_STCSR = 0;
- SYSTICK_STRVR = 0x00FFFFFF;
- SYSTICK_STCVR = 0;
- SYSTICK_STCSR = 0x00000005;
- }
- void SysTick_wait(uint32_t delay) {
- SYSTICK_STRVR = delay - 1;
- SYSTICK_STCVR = 0;
- while ((SYSTICK_STCSR & 0x00010000) == 0) {
- }
- }
- void SysTick_wait1ms(uint32_t delay) {
- uint32_t i;
- for (i = 0; i < delay; i++) {
- SysTick_wait(3000);
- }
- }
- void Port_Init(void) {
- P1SEL1 = 0x00;
- P1SEL0 = 0x00;
- P1DIR = 0x00;
- P1REN = 0x12;
- P1OUT = 0x12;
- P1IES = 0x12;
- P1IFG = 0;
- P1IE = 0x12;
- P2SEL1 = 0x00;
- P2SEL0 = 0x00;
- P2DIR = 0x07;
- P2OUT = 0x00;
- NVIC_EnableIRQ(PORT1_IRQn);
- __enable_irq();
- }
- void PORT1_IRQHandler(void){
- if (P1IFG&0x02){
- led = led << 1;
- if (led == 0x08){
- led = 0x01;
- }
- }
- if (P1IFG&0x10){
- led = led >> 1;
- if (led == 0x00){
- led = 0x04;
- }
- }
- P1IFG &= 0x00;
- }
Advertisement
Add Comment
Please, Sign In to add comment