jo stimmt vergass sorry die 3 ms sind ja blitzartig verstrichen das es eigendlich direkt los geht^^
so funktioniert alles. war nur für test zweckeCode:#include <avr/io.h> #include "i2cmaster.h" #include "asuro.h" #define Display 0x74 // device address of Display, see datasheet #define aus MotorDir(BREAK,BREAK) #define go {MotorSpeed(150,150);MotorDir(FWD,FWD);} #define backturn { MotorSpeed(150,250);MotorDir(RWD,RWD);Msleep(1000);} int speed() { int rightspeed,leftspeed; int leftold,rightold; Encoder_Set(0,0); // reset encoder leftold=encoder[LEFT]; rightold=encoder[RIGHT]; Msleep(300); leftspeed=encoder[LEFT]-leftold; rightspeed=encoder[RIGHT]-rightold; //SerWrite(" speed Left,Right ",19); //PrintInt(leftspeed); //PrintInt(rightspeed); return leftspeed+rightspeed; } int main(void) { int n,v,nullspeed; int ret=0; Init(); BackLED(ON,ON); i2c_init(); ret = i2c_start(Display+I2C_WRITE); if ( ret ) { i2c_stop(); StatusLED(RED); while(1); } Msleep(3); i2c_write(0x00); Msleep(3); i2c_write(0x01); Msleep(3); i2c_write(0x2E); Msleep(3); i2c_write(0x0F); Msleep(3); i2c_write(0x06); Msleep(3); i2c_stop(); ret = i2c_start(Display+I2C_WRITE); if ( ret ) { i2c_stop(); StatusLED(RED); while(1); } Msleep(3); i2c_write(0x40); //Kontroll Byte Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xC8); //H Msleep(3); i2c_write(0xC5); //E Msleep(3); i2c_write(0xCC); //L Msleep(3); i2c_write(0xCC); //L Msleep(3); i2c_write(0xCF); //O Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xC9); //I Msleep(3); i2c_write(0xA7); //´ Msleep(3); i2c_write(0xCD); //M Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xC1); //A Msleep(3); i2c_write(0xD3); //S Msleep(3); i2c_write(0xD5); //U Msleep(3); i2c_write(0xD2); //R Msleep(3); i2c_write(0xCF); //O Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xC3); //C Msleep(3); i2c_write(0xD2); //R Msleep(3); i2c_write(0xC5); //E Msleep(3); i2c_write(0xC1); //A Msleep(3); i2c_write(0xD4); //T Msleep(3); i2c_write(0xC5); //E Msleep(3); i2c_write(0xC4); //D Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xA0); //leer Msleep(3); i2c_write(0xC2); //B Msleep(3); i2c_write(0xD9); //Y Msleep(3); i2c_write(0x2E); //> Msleep(3); i2c_write(0xC4); //D Msleep(3); i2c_write(0xC1); //A Msleep(3); i2c_write(0xCE); //N Msleep(3); i2c_write(0xCA); //J Msleep(3); i2c_write(0xCF); //O Msleep(3); i2c_write(0x2F); //< Msleep(3); i2c_write(0x2F); //< Msleep(3); Encoder_Init(); StatusLED(OFF); SerWrite("\n\rASURO OK\n\r",8); go; Msleep(500); nullspeed=speed()-10; while(1) { v=speed(); SerWrite("\n\r speed ",9); PrintInt(v); if(v<nullspeed) { backturn; go; Msleep(500); } } return 0; }







Zitieren

Lesezeichen