|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #include <avr/io.h>
- #include <util/delay.h>
- #include "backlight.h"
-
- uint8_t led_counter = 0;
- uint8_t led_level = 0;
- uint8_t led_col = 0;
-
- void bl_set()
- {
- if (led_counter > 7)
- {
- led_counter = 0;
- }
-
-
- for (led_col = 0;led_col < 5;led_col++)
- {
- switch (led_col) {
- case 0:
- if (led_counter < led_level)
- {
- PORTF |= (1 << 4);
- PORTF &= ~(1 << 5 | 1 << 6 | 1 << 7);
- for(uint8_t i = 0;i < led_level;i++)
- {
- _delay_us(3);
- }
- }
- break;
- case 1:
- if (led_counter < led_level)
- {
- PORTF |= (1 << 5);
- PORTF &= ~(1 << 4 | 1 << 6 | 1 << 7);
- for(uint8_t i = 0;i < led_level;i++)
- {
- _delay_us(3);
- }
- }
- break;
- case 2:
-
- if (led_counter < led_level)
- {
- PORTF |= (1 << 6);
- PORTF &= ~(1 << 4 | 1 << 5 | 1 << 7);
- for(uint8_t i = 0;i < led_level;i++)
- {
- _delay_us(3);
- }
- }
- break;
- case 3:
-
- if (led_counter < led_level)
- {
- PORTF |= (1 << 7);
- PORTF &= ~(1 << 4 | 1 << 5 | 1 << 6);
- for(uint8_t i = 0;i < led_level;i++)
- {
- _delay_us(3);
- }
- }
- break;
- case 4:
- PORTF &= ~(1 << 4 | 1 << 5 | 1 << 6 | 1 << 7);
- break;
- }
- }
- led_counter++;
- }
-
- void backlight_init_ports()
- {
- DDRB |= (1 << 1 | 1 << 2 | 1 << 3);
- PORTB &= ~(1 << 1 | 1 << 2 | 1 << 3);
-
- DDRF |= (1 << 4 | 1 << 5 | 1 << 6 | 1 << 7);
- PORTF |= (1 << 4 | 1 << 5 | 1 << 6 | 1 << 7);
-
- backlight_init();
- }
-
- void backlight_set(uint8_t level)
- {
- led_level = level;
- }
|