void ledSchalterTest(void){ if (s1() == 1) { for (int i=1;i <= 10; i++) { ledPB1(1); warte_ms(100); ledPB2(1); warte_ms(100); ledPC2(1); warte_ms(100); ledPC3(1); warte_ms(100); ledPB1(0); ledPB2(0); ledPC2(0); ledPC3(0); warte_ms(100); }; } else { ledPB1(0); ledPB2(0); ledPC2(0); ledPC3(0); }; }
/* ein Byte in das ???-Register des ST7036 senden */ void ST7036_write_byte( char data ) { signed char u8_zahl = 8; char c_data; // Chip-Select auf log.0 Clear_Bit( ST7036_CSB ); c_data = data; do { _delay_loop_2(6); if ( c_data & 0x80 ) // oberstes Bit von c_data betrachten Set_Bit(ST7036_SI); // und Datenleitung entsprechend setzen else Clear_Bit(ST7036_SI); _delay_loop_2(5); // einen Clockpuls erzeugen Clear_Bit(ST7036_CLK); _delay_loop_2(6); Set_Bit(ST7036_CLK); c_data = c_data << 1; u8_zahl --; } while (u8_zahl > 0); // Chip-Select wieder auf log.1 warte_ms( 2 ); Set_Bit( ST7036_CSB ); }
/* Reset durchführen */ void ST7036_reset(void) { #ifdef ST7036_RESET Clear_Bit(lcdReset); // Hardware-Reset log.0 an den ST7036 anlegen warte_ms( 100 ); Set_Bit(lcdReset); #endif }
void akkuSpannungPruefen(int schwellwert) { // Prüfe die AkkuSpannung nur, wenn Schalter 4 an ist und nur nach einem Reset!! // alle LEDs blinken, wenn Akku-Spannung < Schwellwert !! analogwertAkku=adc(7); if (analogwertAkku < schwellwert) { ledPB1(1); ledPB2(1); ledPC2(1); ledPC3(1); warte_ms(blinkT/2); ledPB1(0); ledPB2(0); ledPC2(0); ledPC3(0); warte_ms(blinkT/2); } }
/* ein Byte in das Daten-Register des KS0073 senden */ void ST7036_init(void) { Set_Bit(ST7036_CLK); Set_Bit(ST7036_CSB); //ST7036_reset(); warte_ms(50); // mehr als 40ms warten // ST7036_write_command_byte( 0x38 ); // Function set; 8 bit Datenlänge, 2 Zeilen warte_us(50); // mehr als 26,3µs warten ST7036_write_command_byte( 0x39 ); // Function set; 8 bit Datenlänge, 2 Zeilen, Instruction table 1 warte_us(50); // mehr als 26,3µs warten ST7036_write_command_byte( 0x1d ); // Bias Set; BS 1/5; 3 zeiliges Display /1d warte_us(50); // mehr als 26,3µs warten ST7036_write_command_byte( 0x7c ); // Kontrast C3, C2, C1 setzen /7c warte_us(50); // mehr als 26,3µs warten ST7036_write_command_byte( 0x50 ); // Booster aus; Kontrast C5, C4 setzen /50 warte_us(50); // mehr als 26,3µs warten ST7036_write_command_byte( 0x6c ); // Spannungsfolger und Verstärkung setzen /6c warte_ms( 500 ); // mehr als 200ms warten !!! ST7036_write_command_byte( 0x0f ); // Display EIN, Cursor EIN, Cursor BLINKEN /0f warte_us(50); // mehr als 26,3µs warten ST7036_write_command_byte( 0x01 ); // Display löschen, Cursor Home warte_ms(400); // ST7036_write_command_byte( 0x06 ); // Cursor Auto-Increment warte_us(50); // mehr als 26,3µs warten }