So.
Mein LCD gibt jetzt endlich eine brauchbare Zeit aus. Allerdings hatte ich wieder Probleme mit der i2c_start_wait();-Funktion. Das hat sich aber wie von allein auf einmal gegeben. Keine Ahnung woran das lag muss aber beobachtet werden.
Hier erstmal der Code der jetzt läuft:
Einzig die SpalteCode:#include <avr/io.h> #include <stdio.h> #include <util/delay.h> #include "i2cmaster/i2cmaster.h" #include "lcdlibrary/lcd.h" #define DS1307 0xD0 unsigned char time_s; // Sekundenvariable unsigned char time_m; // Sekundenvariable unsigned char time_h; // Sekundenvariable unsigned char buffer[10]; unsigned char set_clock(unsigned char reg, unsigned char val) { if (i2c_start(DS1307+I2C_WRITE) != 0) return 1; i2c_write(reg); i2c_write(val); i2c_stop(); return 0; } unsigned char get_time_s() { i2c_start_wait(DS1307+I2C_WRITE); i2c_write(0x00); i2c_stop(); i2c_start(DS1307+I2C_READ); time_s = i2c_readNak(); i2c_stop(); return time_s; } unsigned char get_time_m() { i2c_start_wait(DS1307+I2C_WRITE); i2c_write(0x01); i2c_stop(); i2c_start(DS1307+I2C_READ); time_m = i2c_readNak(); i2c_stop(); return time_m; } unsigned char get_time_h() { i2c_start_wait(DS1307+I2C_WRITE); i2c_write(0x02); i2c_stop(); i2c_start(DS1307+I2C_READ); time_h = i2c_readNak(); i2c_stop(); return time_h; } int main (void) { DDRB = (1<<PB0); // PB0 als Ausgang DDRC = ~(1<<PC3); // PC3 als Eingang lcd_init(LCD_DISP_ON); lcd_clrscr(); i2c_init(); lcd_puts("Bereit"); _delay_ms(1000); lcd_clrscr(); // set_clock(0x02, 0x09); // set_clock(0x01, 0x12); // set_clock(0x00, 0x58); while (1) { get_time_s(); get_time_m(); get_time_h(); sprintf(buffer, "Zeit: %02x:%02x:%02x", time_h, time_m, time_s); lcd_puts(buffer); lcd_gotoxy(0,0); _delay_ms(100); } return 0; }habe ich mir aus dem Netz geklaut und noch nicht verstanden. Zusammen mit dieser zeile treten beim kompilieren auch zwei Warnungen auf:Code:sprintf(buffer, "Zeit: %02x:%02x:%02x", time_h, time_m, time_s);
Kann mir bei diesen beiden Punkten grad mal jemand vom Schlauch helfen?Code:../exp_RTC.c: In function 'main': ../exp_RTC.c:86: warning: pointer targets in passing argument 1 of 'sprintf' differ in signedness ../exp_RTC.c:87: warning: pointer targets in passing argument 1 of 'lcd_puts' differ in signedness







Zitieren

Lesezeichen