der prozessor hat interne pullups... meine ich mal gehört zu haben. ausserdem geht ja i2c auch mit dem baustein aus dem asurowiki perfekt, und da ja die gleiche bibliothek genutzt wird... und da es ja ansonsten eigentlich auch das gleiche ist, halt dass nicht ausgänge geschaltet werden sonder der displaycontroller angesprochen wird, scheint das kein problem darzustellen.
hier ist der aktuelle programmcode, den ich mir überlegt habe. zum compilieren ist die i2cmaster lib von peter fleury zu benutzen, auch im asurowiki zu finden. leider scheint das ganze noch nicht so ganz zu funktionieren.
nur funktionieren tuts leider nich... die langen pausen sind nur vorsichtsmassnamen, können wahrscheinlich auch deutlich kürzer gewählt werden.Code:#include <avr/io.h>
#include "i2cmaster.h"
#include "asuro.h"
#define Display 0x74 // device address of Display, see datasheet
int main(void)
{
int ret=0;
Init();
i2c_init();
Msleep(500);
ret = i2c_start(Display+I2C_WRITE); //hier wird der i2c bus gestartet und die adresse
if ( ret ) //geschrieben
{
i2c_stop(); //sollte das nicht gehn, wird das programm hier eingefangen
StatusLED(RED);
while(1);
}
Msleep(200);
i2c_write(0x00); //controll byte (muss gesendet werden laut datenblatt)
Msleep(200);
i2c_write(0x2C); //die nächsten bitfolgen bzw werte sind aus dem daten-
Msleep(200); //blatt kopiert. sollte eigentlich das display
i2c_write(0x0E); //einschalten und den corsur nach oben
Msleep(200); //links setzen.
i2c_write(0x06); //einzige änderung: da nicht dual power sondern
Msleep(200); //single supply genutzt wird (also nur +5V und gnd und nicht
//+5V und -5V) habe ich das G-bit auf 1 geändert.
while(1); //weitere infos im datenblatt.
return 0;
}