SHOW:
|
|
- or go back to the newest paste.
| 1 | /* | |
| 2 | Copyright 2012 D Westaby | |
| 3 | - | |
| 3 | + | |
| 4 | ---------------------------------------------------------------------- | |
| 5 | Car Lights for Attiny2313 | |
| 6 | ---------------------------------------------------------------------- | |
| 7 | - | Title: Car_Lighting.D |
| 7 | + | Title: Car_Lighting.c |
| 8 | Author: Dustin Westaby | |
| 9 | Date Created: September 8, 2012 | |
| 10 | Date Modified: September 21, 2012 | |
| 11 | - | |
| 11 | + | |
| 12 | Compiled with AVR-GCC WinAVR | |
| 13 | - | |
| 13 | + | |
| 14 | ---------------------------------------------------------------------- | |
| 15 | Fuses: | |
| 16 | ---------------------------------------------------------------------- | |
| 17 | BrownOut Disabled | |
| 18 | CKDIV8 | |
| 19 | Int RC Osc 8Mhz + 64ms | |
| 20 | - | |
| 20 | + | |
| 21 | ---------------------------------------------------------------------- | |
| 22 | Inputs: | |
| 23 | ---------------------------------------------------------------------- | |
| 24 | None | |
| 25 | - | |
| 25 | + | |
| 26 | ---------------------------------------------------------------------- | |
| 27 | Ouputs: | |
| 28 | ---------------------------------------------------------------------- | |
| 29 | pin i/o port circuit trace connection | |
| 30 | ---------------------------------------------------------------------- | |
| 31 | 4 1 PA1 = R_LED1 | |
| 32 | 5 1 PA0 = L_LED2 | |
| 33 | 2 1 PD0 = R_LED3 | |
| 34 | 3 1 PD1 = R_LED4 | |
| 35 | 6 1 PD2 = R_LED5 | |
| 36 | 7 1 PD3 = R_LED6 | |
| 37 | 14 1 PB2 = L_LED7 | |
| 38 | 17 1 PB5 = L_LED8 | |
| 39 | 18 1 PB6 = L_LED9 | |
| 40 | 19 1 PB7 = L_LED10 | |
| 41 | - | |
| 41 | + | |
| 42 | */ | |
| 43 | - | |
| 43 | + | |
| 44 | /*-------------------------------------- | |
| 45 | - | // Global Variables | |
| 45 | + | Global Variables | |
| 46 | ---------------------------------------- */ | |
| 47 | - | // 8 MHz Internal Oscillator DIV8 (used for delay subroutines) |
| 47 | + | |
| 48 | - | // One CPU Cycle = 1us |
| 48 | + | /* 8 MHz Internal Oscillator DIV8 (used for delay subroutines) |
| 49 | One CPU Cycle = 1us */ | |
| 50 | - | |
| 50 | + | |
| 51 | ||
| 52 | #define R_LED1_PA1 (1<<1) | |
| 53 | #define L_LED2_PA0 (1<<0) | |
| 54 | #define R_LED3_PD0 (1<<0) | |
| 55 | #define R_LED4_PD1 (1<<1) | |
| 56 | #define R_LED5_PD2 (1<<2) | |
| 57 | #define R_LED6_PD3 (1<<3) | |
| 58 | #define L_LED7_PB2 (1<<2) | |
| 59 | #define L_LED8_PB5 (1<<5) | |
| 60 | #define L_LED9_PB6 (1<<6) | |
| 61 | #define L_LED10_PB7 (1<<7) | |
| 62 | - | //This value is used to count us of delay and convert to ms |
| 62 | + | |
| 63 | - | //Due to other cpu processing: "1ms of delay" < "1000us of delay" |
| 63 | + | //delay wait values, measured in us |
| 64 | #define DIM_DELAY_ON (200) | |
| 65 | #define DIM_DELAY_OFF (200) | |
| 66 | ||
| 67 | /* This value is used to count us of delay and convert to ms | |
| 68 | - | |
| 68 | + | Due to other cpu processing: "1ms of delay" < "1000us of delay" */ |
| 69 | #define TIME_CONVERSION_VAL (50) | |
| 70 | ||
| 71 | int program_ms_counter; | |
| 72 | int program_counter_us; //used for tracking time elapsed | |
| 73 | ||
| 74 | - | |
| 74 | + | |
| 75 | // Includes | | |
| 76 | //-------------------------------------- | |
| 77 | #include <avr/io.h> | |
| 78 | #include <util/delay.h> | |
| 79 | ||
| 80 | //-------------------------------------- | |
| 81 | // Delay Subroutines | | |
| 82 | //-------------------------------------- | |
| 83 | //These functions are from the delay.h include, the calls to delay functions | |
| 84 | //are re-written here to allow for longer waits. | |
| 85 | void delay_ms(uint16_t ms) {
| |
| 86 | program_ms_counter+=ms; | |
| 87 | while ( ms ) | |
| 88 | {
| |
| 89 | _delay_ms(1); | |
| 90 | ms--; | |
| 91 | } | |
| 92 | } | |
| 93 | ||
| 94 | void delay_us(uint16_t us) {
| |
| 95 | - | |
| 95 | + | |
| 96 | while ( us ) | |
| 97 | {
| |
| 98 | - | program_ms_counter++; |
| 98 | + | |
| 99 | - | program_counter_us-=TIME_CONVERSION_VAL; |
| 99 | + | |
| 100 | } | |
| 101 | ||
| 102 | - | |
| 102 | + | //This loop will continue to convert us into ms until the "us counter" is |
| 103 | // below the conversion val | |
| 104 | - | // Misc Subroutines | |
| 104 | + | |
| 105 | {
| |
| 106 | - | |
| 106 | + | program_ms_counter++; //increment "ms counter" |
| 107 | program_counter_us-=TIME_CONVERSION_VAL; //subtract "us counter" | |
| 108 | - | program_ms_counter=0; |
| 108 | + | |
| 109 | - | program_counter_us=0; |
| 109 | + | |
| 110 | ||
| 111 | - | |
| 111 | + | |
| 112 | - | void all_LEDs_ON(void) {
|
| 112 | + | // Program Subroutines | |
| 113 | - | PORTA = 0xFF; |
| 113 | + | |
| 114 | - | PORTB = 0xFF; |
| 114 | + | |
| 115 | - | PORTD = 0xFF; |
| 115 | + | |
| 116 | //set "ms counter" and "us counter" to 0 | |
| 117 | - | |
| 117 | + | program_ms_counter=0; |
| 118 | program_counter_us=0; | |
| 119 | - | PORTA &= ~(R_LED1_PA1 + L_LED2_PA0); |
| 119 | + | |
| 120 | - | PORTB &= ~(L_LED10_PB7 + L_LED9_PB6 + L_LED8_PB5 + L_LED7_PB2); |
| 120 | + | |
| 121 | - | PORTD &= ~(R_LED6_PD3 + R_LED5_PD2 + R_LED4_PD1 + R_LED3_PD0); |
| 121 | + | void all_LEDs_BRT(void) {
|
| 122 | //Sets all PORT outputs to 1, which is a high (+5V) on the pin | |
| 123 | PORTA = 0xFF; // = 0b11111111 | |
| 124 | - | void program1_off(void) {
|
| 124 | + | PORTB = 0xFF; |
| 125 | - | PORTA &= ~(R_LED1_PA1 + L_LED2_PA0); |
| 125 | + | PORTD = 0xFF; |
| 126 | - | PORTB &= ~(L_LED10_PB7 + L_LED9_PB6 + L_LED8_PB5 + L_LED7_PB2); |
| 126 | + | |
| 127 | - | PORTD &= ~(R_LED6_PD3 + R_LED5_PD2 + R_LED4_PD1 + R_LED3_PD0); |
| 127 | + | |
| 128 | void all_LEDs_OFF(void) {
| |
| 129 | - | |
| 129 | + | //Sets all PORT outputs to 0, which is a low (GND) on the pin |
| 130 | - | void program2_off(void) {
|
| 130 | + | Porta &= ~( R_Led1_Pa1 //Turn Off Port A, Pin 1 |
| 131 | - | PORTA &= ~(R_LED1_PA1 + L_LED2_PA0); |
| 131 | + | + L_Led2_Pa0); //Turn Off Port A, Pin 0 |
| 132 | - | PORTB &= ~(L_LED10_PB7 + L_LED8_PB5); |
| 132 | + | Portb &= ~( L_Led10_Pb7 //Turn Off Port B, Pin 7 |
| 133 | - | PORTD &= ~(R_LED6_PD3 + R_LED5_PD2 + R_LED4_PD1 + R_LED3_PD0); |
| 133 | + | + L_Led9_Pb6 //Turn Off Port B, Pin 6 |
| 134 | + L_Led8_Pb5 //Turn Off Port B, Pin 5 | |
| 135 | + L_Led7_Pb2); //Turn Off Port B, Pin 2 | |
| 136 | - | void program3_off(void) {
|
| 136 | + | Portd &= ~( R_Led6_Pd3 //Turn Off Port D, Pin 3 |
| 137 | - | PORTA &= ~(R_LED1_PA1 + L_LED2_PA0); |
| 137 | + | + R_Led5_Pd2 //Turn Off Port D, Pin 2 |
| 138 | + R_Led4_Pd1 //Turn Off Port D, Pin 1 | |
| 139 | + R_Led3_Pd0); //Turn Off Port D, Pin 0 | |
| 140 | - | void program4_off (void) {
|
| 140 | + | |
| 141 | - | PORTA &= ~(R_LED1_PA1 + L_LED2_PA0); |
| 141 | + | |
| 142 | - | PORTB &= ~(L_LED10_PB7 + L_LED9_PB6 + L_LED8_PB5 + L_LED7_PB2); |
| 142 | + | void program2_LEDs_to_DIM(void) {
|
| 143 | - | PORTD &= ~(R_LED6_PD3 + R_LED5_PD2 + R_LED4_PD1 + R_LED3_PD0); |
| 143 | + | PORTA &= ~( R_LED1_PA1 //Turn Off PORT A, pin 1 |
| 144 | + L_LED2_PA0); //Turn Off PORT A, pin 0 | |
| 145 | PORTB &= ~( L_LED10_PB7 //Turn Off PORT B, pin 7 | |
| 146 | - | void program5_off (void) {
|
| 146 | + | + L_LED8_PB5); //Turn Off PORT B, pin 5 |
| 147 | - | PORTA &= ~(R_LED1_PA1 + L_LED2_PA0); |
| 147 | + | PORTD &= ~( R_LED6_PD3 //Turn Off PORT D, pin 3 |
| 148 | - | PORTB &= ~(L_LED10_PB7 + L_LED9_PB6 + L_LED8_PB5 + L_LED7_PB2); |
| 148 | + | + R_LED5_PD2 //Turn Off PORT D, pin 2 |
| 149 | - | PORTD &= ~(R_LED6_PD3 + R_LED4_PD1); |
| 149 | + | + R_LED4_PD1 //Turn Off PORT D, pin 1 |
| 150 | + R_LED3_PD0); //Turn Off PORT D, pin 0 | |
| 151 | } | |
| 152 | - | void program6_off (void) {
|
| 152 | + | |
| 153 | - | PORTA &= ~(R_LED1_PA1 + L_LED2_PA0); |
| 153 | + | void program3_6_LEDs_to_DIM(void) {
|
| 154 | PORTA &= ~( R_LED1_PA1 //Turn Off PORT A, pin 1 | |
| 155 | - | |
| 155 | + | + L_LED2_PA0); //Turn Off PORT A, pin 0 |
| 156 | } | |
| 157 | ||
| 158 | void program5_LEDs_to_DIM (void) {
| |
| 159 | PORTA &= ~( R_LED1_PA1 //Turn Off PORT A, pin 1 | |
| 160 | + L_LED2_PA0); //Turn Off PORT A, pin 0 | |
| 161 | PORTB &= ~( L_LED10_PB7 //Turn Off PORT B, pin 7 | |
| 162 | - | |
| 162 | + | + L_LED9_PB6 //Turn Off PORT B, pin 6 |
| 163 | + L_LED8_PB5 //Turn Off PORT B, pin 5 | |
| 164 | + L_LED7_PB2); //Turn Off PORT B, pin 2 | |
| 165 | PORTD &= ~( R_LED6_PD3 //Turn Off PORT D, pin 3 | |
| 166 | - | |
| 166 | + | + R_LED4_PD1); //Turn Off PORT D, pin 1 |
| 167 | - | int dim_delay_on = 200; //us |
| 167 | + | |
| 168 | - | int dim_delay_off = 4000; //us |
| 168 | + | |
| 169 | - | |
| 169 | + | /* Software PWM explaination: |
| 170 | ||
| 171 | The dim LED effect is performed by a software PWM. Each of the loops in the | |
| 172 | main() function turn on all LEDs, then turn off only the LEDs we want as DIM. | |
| 173 | The LEDs that remain on will appear BRIGHT. The LEDs that are rapid turned | |
| 174 | - | |
| 174 | + | on and off will appear DIM. |
| 175 | ||
| 176 | - | |
| 176 | + | DIM_DELAY_ON DIM_DELAY_ON |
| 177 | +5V ______________ _______________ | |
| 178 | | | | | | |
| 179 | GND _______________| |_______________| |______________ | |
| 180 | - | |
| 180 | + | DIM_DELAY_OFF DIM_DELAY_OFF DIM_DELAY_OFF |
| 181 | */ | |
| 182 | ||
| 183 | - | |
| 183 | + | void program_NORMAL_MODE(void) {
|
| 184 | - | //program 1 |
| 184 | + | all_LEDs_BRT(); //Turn on all LEDs |
| 185 | delay_us(DIM_DELAY_ON); //Time to keep all LEDs on | |
| 186 | all_LEDs_OFF(); //Turn off all LEDs | |
| 187 | delay_us(DIM_DELAY_OFF); //Time to keep all LEDs off | |
| 188 | - | all_LEDs_ON(); |
| 188 | + | |
| 189 | - | delay_us(dim_delay_on); |
| 189 | + | |
| 190 | - | all_LEDs_OFF(); |
| 190 | + | void program_LEFT_TURN(void) {
|
| 191 | - | delay_us(dim_delay_off); |
| 191 | + | all_LEDs_BRT(); //Turn on all LEDs |
| 192 | delay_us(DIM_DELAY_ON); //Time to keep all LEDs on | |
| 193 | program2_LEDs_to_DIM(); //Turn off program 2 LEDs | |
| 194 | - | //program 2 |
| 194 | + | delay_us(DIM_DELAY_OFF); //Time to keep program 2 LEDs off |
| 195 | } | |
| 196 | ||
| 197 | void program_BRAKE_MODE(void) {
| |
| 198 | - | all_LEDs_ON(); |
| 198 | + | all_LEDs_BRT(); //Turn on all LEDs |
| 199 | - | delay_us(dim_delay_on); |
| 199 | + | delay_us(DIM_DELAY_ON); //Time to keep all LEDs on |
| 200 | - | program3_off(); |
| 200 | + | program3_6_LEDs_to_DIM(); //Turn off program 3 LEDs |
| 201 | - | delay_us(dim_delay_off); |
| 201 | + | delay_us(DIM_DELAY_OFF); //Time to keep program 3 LEDs off |
| 202 | } | |
| 203 | ||
| 204 | void program_RIGHT_TURN (void) {
| |
| 205 | - | all_LEDs_ON(); |
| 205 | + | all_LEDs_BRT(); //Turn on all LEDs |
| 206 | - | delay_us(dim_delay_on); |
| 206 | + | delay_us(DIM_DELAY_ON); //Time to keep all LEDs on |
| 207 | - | all_LEDs_OFF(); |
| 207 | + | program5_LEDs_to_DIM(); //Turn off program 5 LEDs |
| 208 | - | delay_us(dim_delay_off); |
| 208 | + | delay_us(DIM_DELAY_OFF); //Time to keep program 5 LEDs off |
| 209 | } | |
| 210 | ||
| 211 | ||
| 212 | - | all_LEDs_ON(); |
| 212 | + | |
| 213 | - | delay_us(dim_delay_on); |
| 213 | + | |
| 214 | - | program3_off(); |
| 214 | + | |
| 215 | - | delay_us(dim_delay_off); |
| 215 | + | |
| 216 | {
| |
| 217 | ||
| 218 | /* ---------------------------------------------------------------- */ | |
| 219 | - | all_LEDs_ON(); |
| 219 | + | |
| 220 | - | delay_us(dim_delay_on); |
| 220 | + | |
| 221 | - | all_LEDs_OFF(); |
| 221 | + | |
| 222 | - | delay_us(dim_delay_off); |
| 222 | + | |
| 223 | DDRA = 0b00000011; //A0, A1 | |
| 224 | DDRB = 0b11111111; | |
| 225 | DDRD = 0b11111111; | |
| 226 | - | all_LEDs_ON(); |
| 226 | + | |
| 227 | - | delay_us(dim_delay_on); |
| 227 | + | //Begin with all LEDs off |
| 228 | - | program3_off(); |
| 228 | + | |
| 229 | - | delay_us(dim_delay_off); |
| 229 | + | |
| 230 | /* ---------------------------------------------------------------- */ | |
| 231 | /* Main Loop */ | |
| 232 | /* ---------------------------------------------------------------- */ | |
| 233 | - | all_LEDs_ON(); |
| 233 | + | |
| 234 | - | delay_us(dim_delay_on); |
| 234 | + | |
| 235 | - | all_LEDs_OFF(); |
| 235 | + | |
| 236 | - | delay_us(dim_delay_off); |
| 236 | + | |
| 237 | /* ---------------------------- */ | |
| 238 | /* Program 1 - NORMAL */ | |
| 239 | /* ---------------------------- */ | |
| 240 | - | all_LEDs_ON(); |
| 240 | + | |
| 241 | - | delay_us(dim_delay_on); |
| 241 | + | |
| 242 | - | program3_off(); |
| 242 | + | |
| 243 | - | delay_us(dim_delay_off); |
| 243 | + | |
| 244 | program_NORMAL_MODE(); | |
| 245 | } | |
| 246 | ||
| 247 | - | all_LEDs_ON(); |
| 247 | + | /* ---------------------------- */ |
| 248 | - | delay_us(dim_delay_on); |
| 248 | + | /* Program 3 - BRAKES */ |
| 249 | - | all_LEDs_OFF(); |
| 249 | + | /* ---------------------------- */ |
| 250 | - | delay_us(dim_delay_off); |
| 250 | + | |
| 251 | ||
| 252 | while(program_ms_counter < 500) | |
| 253 | {
| |
| 254 | - | all_LEDs_ON(); |
| 254 | + | program_BRAKE_MODE(); |
| 255 | - | delay_us(dim_delay_on); |
| 255 | + | |
| 256 | - | program3_off(); |
| 256 | + | |
| 257 | - | delay_us(dim_delay_off); |
| 257 | + | |
| 258 | program_NORMAL_MODE(); | |
| 259 | } | |
| 260 | while(program_ms_counter < 1500) | |
| 261 | - | all_LEDs_ON(); |
| 261 | + | |
| 262 | - | delay_us(dim_delay_on); |
| 262 | + | program_BRAKE_MODE(); |
| 263 | - | all_LEDs_OFF(); |
| 263 | + | |
| 264 | - | delay_us(dim_delay_off); |
| 264 | + | |
| 265 | {
| |
| 266 | program_NORMAL_MODE(); | |
| 267 | } | |
| 268 | - | all_LEDs_ON(); |
| 268 | + | |
| 269 | - | delay_us(dim_delay_on); |
| 269 | + | |
| 270 | - | program3_off(); |
| 270 | + | program_BRAKE_MODE(); |
| 271 | - | delay_us(dim_delay_off); |
| 271 | + | |
| 272 | while(program_ms_counter < 3000) | |
| 273 | {
| |
| 274 | program_NORMAL_MODE(); | |
| 275 | - | all_LEDs_ON(); |
| 275 | + | |
| 276 | - | delay_us(dim_delay_on); |
| 276 | + | |
| 277 | - | all_LEDs_OFF(); |
| 277 | + | |
| 278 | - | delay_us(dim_delay_off); |
| 278 | + | program_BRAKE_MODE(); |
| 279 | } | |
| 280 | while(program_ms_counter < 4000) | |
| 281 | {
| |
| 282 | - | all_LEDs_ON(); |
| 282 | + | program_NORMAL_MODE(); |
| 283 | - | delay_us(dim_delay_on); |
| 283 | + | |
| 284 | - | program3_off(); |
| 284 | + | |
| 285 | - | delay_us(dim_delay_off); |
| 285 | + | |
| 286 | program_BRAKE_MODE(); | |
| 287 | } | |
| 288 | while(program_ms_counter < 5000) | |
| 289 | - | all_LEDs_ON(); |
| 289 | + | |
| 290 | - | delay_us(dim_delay_on); |
| 290 | + | program_NORMAL_MODE(); |
| 291 | - | all_LEDs_OFF(); |
| 291 | + | |
| 292 | - | delay_us(dim_delay_off); |
| 292 | + | |
| 293 | - | } |
| 293 | + | |
| 294 | - | |
| 294 | + | program_BRAKE_MODE(); |
| 295 | - | //program 3 |
| 295 | + | |
| 296 | while(program_ms_counter < 6000) | |
| 297 | {
| |
| 298 | program_NORMAL_MODE(); | |
| 299 | - | all_LEDs_ON(); |
| 299 | + | |
| 300 | - | delay_us(dim_delay_on); |
| 300 | + | |
| 301 | - | program2_off(); |
| 301 | + | |
| 302 | - | delay_us(dim_delay_off); |
| 302 | + | program_BRAKE_MODE(); |
| 303 | } | |
| 304 | while(program_ms_counter < 7000) | |
| 305 | {
| |
| 306 | - | all_LEDs_ON(); |
| 306 | + | program_NORMAL_MODE(); |
| 307 | - | delay_us(dim_delay_on); |
| 307 | + | |
| 308 | - | all_LEDs_OFF(); |
| 308 | + | |
| 309 | - | delay_us(dim_delay_off); |
| 309 | + | /* ------------------------------- */ |
| 310 | /* Program 2 - LEFT TURN */ | |
| 311 | /* ------------------------------- */ | |
| 312 | reset_ms_us_counters(); | |
| 313 | - | all_LEDs_ON(); |
| 313 | + | |
| 314 | - | delay_us(dim_delay_on); |
| 314 | + | |
| 315 | - | program2_off(); |
| 315 | + | |
| 316 | - | delay_us(dim_delay_off); |
| 316 | + | program_LEFT_TURN(); |
| 317 | } | |
| 318 | while(program_ms_counter < 4000) | |
| 319 | {
| |
| 320 | - | all_LEDs_ON(); |
| 320 | + | program_NORMAL_MODE(); |
| 321 | - | delay_us(dim_delay_on); |
| 321 | + | |
| 322 | - | all_LEDs_OFF(); |
| 322 | + | |
| 323 | - | delay_us(dim_delay_off); |
| 323 | + | |
| 324 | program_LEFT_TURN(); | |
| 325 | } | |
| 326 | - | //program 4 |
| 326 | + | |
| 327 | {
| |
| 328 | program_NORMAL_MODE(); | |
| 329 | } | |
| 330 | - | all_LEDs_ON(); |
| 330 | + | |
| 331 | - | delay_us(dim_delay_on); |
| 331 | + | /* ---------------------------- */ |
| 332 | - | all_LEDs_OFF(); |
| 332 | + | /* Program 1 - NORMAL */ |
| 333 | - | delay_us(dim_delay_off); |
| 333 | + | /* ---------------------------- */ |
| 334 | reset_ms_us_counters(); | |
| 335 | - | |
| 335 | + | |
| 336 | - | //program 5 |
| 336 | + | |
| 337 | {
| |
| 338 | program_NORMAL_MODE(); | |
| 339 | } | |
| 340 | - | all_LEDs_ON(); |
| 340 | + | |
| 341 | - | delay_us(dim_delay_on); |
| 341 | + | /* ------------------------------------ */ |
| 342 | - | program4_off(); |
| 342 | + | /* Program 4 - NORMAL FLASHING */ |
| 343 | - | delay_us(dim_delay_off); |
| 343 | + | /* ------------------------------------ */ |
| 344 | reset_ms_us_counters(); | |
| 345 | ||
| 346 | while(program_ms_counter < 500) | |
| 347 | - | all_LEDs_ON(); |
| 347 | + | |
| 348 | - | delay_us(dim_delay_on); |
| 348 | + | all_LEDs_OFF(); |
| 349 | - | all_LEDs_OFF(); |
| 349 | + | |
| 350 | - | delay_us(dim_delay_off); |
| 350 | + | |
| 351 | {
| |
| 352 | program_NORMAL_MODE(); | |
| 353 | } | |
| 354 | - | all_LEDs_ON(); |
| 354 | + | |
| 355 | - | delay_us(dim_delay_on); |
| 355 | + | |
| 356 | - | program4_off(); |
| 356 | + | all_LEDs_OFF(); |
| 357 | - | delay_us(dim_delay_off); |
| 357 | + | |
| 358 | while(program_ms_counter < 2000) | |
| 359 | {
| |
| 360 | program_NORMAL_MODE(); | |
| 361 | - | all_LEDs_ON(); |
| 361 | + | |
| 362 | - | delay_us(dim_delay_on); |
| 362 | + | |
| 363 | - | all_LEDs_OFF(); |
| 363 | + | |
| 364 | - | delay_us(dim_delay_off); |
| 364 | + | all_LEDs_OFF(); |
| 365 | } | |
| 366 | while(program_ms_counter < 3000) | |
| 367 | {
| |
| 368 | - | all_LEDs_ON(); |
| 368 | + | program_NORMAL_MODE(); |
| 369 | - | delay_us(dim_delay_on); |
| 369 | + | |
| 370 | - | program4_off(); |
| 370 | + | |
| 371 | - | delay_us(dim_delay_off); |
| 371 | + | |
| 372 | all_LEDs_OFF(); | |
| 373 | } | |
| 374 | while(program_ms_counter < 4000) | |
| 375 | - | all_LEDs_ON(); |
| 375 | + | |
| 376 | - | delay_us(dim_delay_on); |
| 376 | + | program_NORMAL_MODE(); |
| 377 | - | all_LEDs_OFF(); |
| 377 | + | |
| 378 | - | delay_us(dim_delay_off); |
| 378 | + | |
| 379 | {
| |
| 380 | all_LEDs_OFF(); | |
| 381 | } | |
| 382 | - | all_LEDs_ON(); |
| 382 | + | |
| 383 | - | delay_us(dim_delay_on); |
| 383 | + | |
| 384 | - | program4_off(); |
| 384 | + | program_NORMAL_MODE(); |
| 385 | - | delay_us(dim_delay_off); |
| 385 | + | |
| 386 | while(program_ms_counter < 5500) | |
| 387 | {
| |
| 388 | all_LEDs_OFF(); | |
| 389 | - | all_LEDs_ON(); |
| 389 | + | |
| 390 | - | delay_us(dim_delay_on); |
| 390 | + | |
| 391 | - | all_LEDs_OFF(); |
| 391 | + | |
| 392 | - | delay_us(dim_delay_off); |
| 392 | + | program_NORMAL_MODE(); |
| 393 | } | |
| 394 | while(program_ms_counter < 6500) | |
| 395 | {
| |
| 396 | - | all_LEDs_ON(); |
| 396 | + | all_LEDs_OFF(); |
| 397 | - | delay_us(dim_delay_on); |
| 397 | + | |
| 398 | - | program4_off(); |
| 398 | + | |
| 399 | - | delay_us(dim_delay_off); |
| 399 | + | |
| 400 | program_NORMAL_MODE(); | |
| 401 | } | |
| 402 | ||
| 403 | - | all_LEDs_ON(); |
| 403 | + | /* ------------------------------- */ |
| 404 | - | delay_us(dim_delay_on); |
| 404 | + | /* Program 2 - LEFT TURN */ |
| 405 | - | all_LEDs_OFF(); |
| 405 | + | /* ------------------------------- */ |
| 406 | - | delay_us(dim_delay_off); |
| 406 | + | |
| 407 | ||
| 408 | while(program_ms_counter < 3000) | |
| 409 | {
| |
| 410 | - | all_LEDs_ON(); |
| 410 | + | program_LEFT_TURN(); |
| 411 | - | delay_us(dim_delay_on); |
| 411 | + | |
| 412 | - | program4_off(); |
| 412 | + | |
| 413 | - | delay_us(dim_delay_off); |
| 413 | + | |
| 414 | program_NORMAL_MODE(); | |
| 415 | } | |
| 416 | while(program_ms_counter < 6500) | |
| 417 | - | all_LEDs_ON(); |
| 417 | + | |
| 418 | - | delay_us(dim_delay_on); |
| 418 | + | program_LEFT_TURN(); |
| 419 | - | all_LEDs_OFF(); |
| 419 | + | |
| 420 | - | delay_us(dim_delay_off); |
| 420 | + | |
| 421 | {
| |
| 422 | program_NORMAL_MODE(); | |
| 423 | } | |
| 424 | - | all_LEDs_ON(); |
| 424 | + | |
| 425 | - | delay_us(dim_delay_on); |
| 425 | + | |
| 426 | - | program4_off(); |
| 426 | + | |
| 427 | - | delay_us(dim_delay_off); |
| 427 | + | |
| 428 | } |