Subversion Repositories Code-Repo

Rev

Rev 200 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 200 Rev 201
Line 55... Line 55...
55
void Animation_Pseudo_Random_Colors(int iterations,int delay_ms);
55
void Animation_Pseudo_Random_Colors(int iterations,int delay_ms);
56
void Animation_Random_Colors(int iterations, int delay_ms);
56
void Animation_Random_Colors(int iterations, int delay_ms);
57
void Animation_Cube_In_Cube(int iterations, int delay_ms);
57
void Animation_Cube_In_Cube(int iterations, int delay_ms);
58
 
58
 
59
void Delay_MS(unsigned int delay_ms) {
59
void Delay_MS(unsigned int delay_ms) {
-
 
60
    // Delays the CPU for the given amount of time.
-
 
61
    // Note: Watch out for integer overflow! (max delay_ms = 107374) ??
60
    unsigned int delay = delay_ms * MS_TO_CT_TICKS;
62
    unsigned int delay = delay_ms * MS_TO_CT_TICKS;
61
    unsigned int startTime = ReadCoreTimer();
63
    unsigned int startTime = ReadCoreTimer();
62
    while ((unsigned int)(ReadCoreTimer() - startTime) < delay) {};
64
    while ((unsigned int)(ReadCoreTimer() - startTime) < delay) {};
63
}
65
}
64
 
66
 
65
void Delay_US(unsigned int delay_us) {
67
void Delay_US(unsigned int delay_us) {
-
 
68
    // Delays the CPU for the given amount of time.
-
 
69
    // Note: Watch out for integer overflow!
66
    unsigned int delay = delay_us * US_TO_CT_TICKS;
70
    unsigned int delay = delay_us * US_TO_CT_TICKS;
67
    unsigned int startTime = ReadCoreTimer();
71
    unsigned int startTime = ReadCoreTimer();
68
    while ((unsigned int)(ReadCoreTimer() - startTime) < delay) {};
72
    while ((unsigned int)(ReadCoreTimer() - startTime) < delay) {};
69
}
73
}
70
 
74
 
Line 77... Line 81...
77
    INTConfigureSystem(INT_SYSTEM_CONFIG_MULT_VECTOR);
81
    INTConfigureSystem(INT_SYSTEM_CONFIG_MULT_VECTOR);
78
 
82
 
79
    // Set all analog I/O pins to digital
83
    // Set all analog I/O pins to digital
80
    AD1PCFGSET = 0xFFFF;
84
    AD1PCFGSET = 0xFFFF;
81
 
85
 
-
 
86
    // Initialize peripherals
82
    SPI1_DATA spi_data;
87
    SPI1_DATA spi_data;
83
    SPI1_Init(&spi_data);
88
    SPI1_Init(&spi_data);
84
 
89
 
85
    PWM2_Init();
90
    PWM2_Init();
86
    PWM2_Start();
91
    PWM2_Start();
87
 
92
 
88
    CUBE_DATA cube_data;
93
    CUBE_DATA cube_data;
89
    Cube_Init(&cube_data, 0x01);
94
    Cube_Init(&cube_data, 0x01);
90
 
95
 
91
    // 2083 = 60Hz, 500 = 250Hz, 250 = 500Hz
96
    // 2083 = 60Hz, 500 = 250Hz, 250 = 500Hz
-
 
97
    TIMER_DATA timer_data;
92
    TIMER5_Init(&Cube_Timer_Interrupt, 500);
98
    TIMER5_Init(&timer_data, &Cube_Timer_Interrupt, 500);
93
    TIMER5_Start();
99
    TIMER5_Start();
94
 
100
 
-
 
101
    BTN_DATA btn_data;
95
    BTN_Init(&BTN1_Interrupt, &BTN2_Interrupt, NULL);
102
    BTN_Init(&btn_data, &BTN1_Interrupt, &BTN2_Interrupt, NULL);
96
 
103
 
-
 
104
    // Begin display
97
    Cube_Set_All(0xFF,0xFF,0xFF);
105
    Cube_Set_All(0xFF,0xFF,0xFF);
98
    Delay_MS(3000);
106
    Delay_MS(3000);
99
 
107
 
100
    // Loop through some preset animations
108
    // Loop through some preset animations
101
    while(1) {
109
    while(1) {
Line 115... Line 123...
115
    static char state;
123
    static char state;
116
    state = (state == 3) ? 0 : state + 1;
124
    state = (state == 3) ? 0 : state + 1;
117
    TIMER5_Stop();
125
    TIMER5_Stop();
118
    switch (state) {
126
    switch (state) {
119
        case 0:
127
        case 0:
120
            TIMER5_Init(&Cube_Timer_Interrupt, 500);
128
            TIMER5_Init(NULL, &Cube_Timer_Interrupt, 500);
121
            break;
129
            break;
122
        case 1:
130
        case 1:
123
            TIMER5_Init(&Cube_Timer_Interrupt, 2083);
131
            TIMER5_Init(NULL, &Cube_Timer_Interrupt, 2083);
124
            break;
132
            break;
125
        case 2:
133
        case 2:
126
            TIMER5_Init(&Cube_Timer_Interrupt, 4166);
134
            TIMER5_Init(NULL, &Cube_Timer_Interrupt, 4166);
127
            break;
135
            break;
128
        case 3:
136
        case 3:
129
            TIMER5_Init(&Cube_Timer_Interrupt, 13107);
137
            TIMER5_Init(NULL, &Cube_Timer_Interrupt, 13107);
130
            break;
138
            break;
131
    }
139
    }
132
    TIMER5_Start();
140
    TIMER5_Start();
133
}
141
}
134
 
142