klucky
26.01.2006, 12:16
Ich habe folgendes Programm für einen Mega32 geschrieben der auf 16Mherz läuft. Der Mega32 soll einen SD20 per I2C ansprechen und die Position auf die der erste Servo gefahren werden soll übermitteln der SD20 müsste dann diese Position halten bis ein neuer Befehl kommt. Das ganze funktioniert jedoch nicht wie es soll. Wenn ich den Mega32 in der Schaltung über ISP Programmiere fährt der Servo direkt in die richtige Position so wie er es auch soll. Wenn ich dann aber einmal den Strom ab mache und ihn dann wieder anklemme müsste der Prozessor dem SD20 die Position ja wieder übermitteln aber dann tut sich garnix mehr. Woran könnte das liegen?
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <twimaster.c>
#define SD20_W 0xC2 /*SD20 Adresse mit Schreibbit*/
#define SD20_R 0xC3 /*SD20 Adresse mit Lesebit*/
int main(void)
{
i2c_init();
i2c_start(SD20_W);
i2c_write(0x01);
i2c_write(0xFF);
i2c_stop();
}
MFG Klucky
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <twimaster.c>
#define SD20_W 0xC2 /*SD20 Adresse mit Schreibbit*/
#define SD20_R 0xC3 /*SD20 Adresse mit Lesebit*/
int main(void)
{
i2c_init();
i2c_start(SD20_W);
i2c_write(0x01);
i2c_write(0xFF);
i2c_stop();
}
MFG Klucky