Files
Embedded-Systems-Labs/content/dxp_Lab5_c1.c
2018-03-18 00:56:37 -04:00

59 lines
1.3 KiB
C

//******************************************************************************
// Display_Circle.c
//
// Re-coded completely for CCS v5.4, Launch Pad and Capacitive Booster Pack
// by Dorin Patru October 2013
//******************************************************************************
#include <msp430g2553.h>
unsigned int speed = 0x7FFF; // NOTE: Same delay count as ASM version
// Why does it operate slower?
void delay(void); // Function prototype for delay subroutine
int main(void){
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR &= ~0xFF; // Equivalent to BIC.B #0xFF,&P1DIR
P1DIR |= 0xF8; // Equivalent to BIS.B #0xF8,&P1DIR
while(1){
P1OUT &= ~0xF8; // Display LEDs 4-1
P1OUT |= 0x80; //
delay(); //
P1OUT &= ~0x80; //
P1OUT |= 0x40; //
delay(); //
P1OUT &= ~0x40; //
P1OUT |= 0x20; //
delay(); //
P1OUT &= ~0x20; //
P1OUT |= 0x10; //
delay(); //
P1OUT &= ~0x10; //
P1OUT &= ~0xF8; // Display loop for LEDs 5-8
P1OUT |= 0xF8; //
for (i=4; i<8; i++)
{
P1OUT &= ~(1 << i); // () = 2^i
delay();
P1OUT |= (1 << i);
}
delay(); // call delay subroutine
}
}
void delay(void){
unsigned int j;
j = speed;
j--;
while(j > 0){ // software delay
j--;
j--;
}
}