#include "hardware.h"
|
#include "hardware.h"
|
#include "7seg.h"
|
|
|
|
/**
|
/**
|
Delay function.
|
Delay function.
|
*/
|
*/
|
void delay(unsigned int c, unsigned int d) {
|
void delay(unsigned int c, unsigned int d) {
|
volatile int i, j;
|
volatile int i, j;
|
for (i = 0; i<c; i++) {
|
for (i = 0; i<=c; i++) {
|
for (j = 0; j<d; j++) {
|
for (j = 0; j<d; j++) {
|
nop();
|
__nop();
|
nop();
|
__nop();
|
}
|
}
|
}
|
}
|
}
|
}
|
|
|
/**
|
#define DELAY_TIME 0x000f, 0xffff
|
This one is executed onece a second. it counts seconds, minues, hours - hey
|
//#define DELAY_TIME 0x0000, 0x003f
|
it shoule be a clock ;-)
|
|
it does not count days, but i think you'll get the idea.
|
|
*/
|
|
volatile int irq_counter, offset;
|
|
|
|
wakeup interrupt (WDT_VECTOR) INT_Watchdog(void) {
|
|
|
|
irq_counter++;
|
|
if (irq_counter == 300) {
|
|
irq_counter = 0;
|
|
offset = (offset+1) % 20;
|
|
}
|
|
DispStr (offset, "OPENMSP430 IN ACTION ");
|
|
}
|
|
|
|
|
|
/**
|
/**
|
Main function with some blinking leds
|
Main function with some blinking leds
|
*/
|
*/
|
int main(void) {
|
int main(void) {
|
|
|
int o = 0;
|
|
irq_counter = 0;
|
|
offset = 0;
|
|
|
|
WDTCTL = WDTPW | WDTHOLD; // Disable watchdog timer
|
WDTCTL = WDTPW | WDTHOLD; // Disable watchdog timer
|
|
|
P1OUT = 0x00; // Port data output
|
P1OUT = 0x00; // Port data output
|
P2OUT = 0x00;
|
P2OUT = 0x00;
|
|
|
P1DIR = 0x00; // Port direction register
|
P1DIR = 0x00; // Port direction register
|
P2DIR = 0xff;
|
P2DIR = 0xff;
|
|
|
P1IES = 0x00; // Port interrupt enable (0=dis 1=enabled)
|
P1IES = 0x00; // Port interrupt enable (0=dis 1=enabled)
|
P2IES = 0x00;
|
P2IES = 0x00;
|
P1IE = 0x00; // Port interrupt Edge Select (0=pos 1=neg)
|
P1IE = 0x00; // Port interrupt Edge Select (0=pos 1=neg)
|
P2IE = 0x00;
|
P2IE = 0x00;
|
|
|
//WDTCTL = WDTPW | WDTTMSEL | WDTCNTCL;// | WDTIS1 | WDTIS0 ; // Configure watchdog interrupt
|
|
|
|
//IE1 |= 0x01;
|
|
//eint(); //enable interrupts
|
|
|
|
if (CPU_NR==0x0100) {
|
if (CPU_NR==0x0100) {
|
delay(0x000f, 0xffff);
|
delay(DELAY_TIME);
|
}
|
}
|
|
|
while (1) { // Main loop, never ends...
|
while (1) { // Main loop, never ends...
|
|
|
P2OUT = 0x00;
|
P2OUT = 0x00;
|
delay(0x000f, 0xffff);
|
delay(DELAY_TIME);
|
|
|
P2OUT = 0x01;
|
P2OUT = 0x01;
|
delay(0x000f, 0xffff);
|
delay(DELAY_TIME);
|
|
|
P2OUT = 0x02;
|
P2OUT = 0x02;
|
delay(0x000f, 0xffff);
|
delay(DELAY_TIME);
|
|
|
P2OUT = 0x03;
|
P2OUT = 0x03;
|
delay(0x000f, 0xffff);
|
delay(DELAY_TIME);
|
|
|
P2OUT = 0x02;
|
P2OUT = 0x02;
|
delay(0x000f, 0xffff);
|
delay(DELAY_TIME);
|
|
|
P2OUT = 0x01;
|
P2OUT = 0x01;
|
delay(0x000f, 0xffff);
|
delay(DELAY_TIME);
|
|
|
}
|
}
|
}
|
}
|
|
|
|
|
No newline at end of file
|
No newline at end of file
|