PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega32 und SD20 Probleme



klucky
26.01.2006, 11: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

klucky
27.01.2006, 14:34
So das Problem hat sich erledigt ... es lag daran das der Mega32 den I2C Befehl gesendet hat bevor der SD20 bereit war und der Befehl somit nur einmal zu früh gesendet wird ... wenn man vor main(){} eine verzögerung einfügt funktioniert es einwandfrei ...

super_castle
27.01.2006, 15:30
#include <twimaster.c>

hallo, wo hast du twimaster.c her, ich suche so etwas für mein compasmodul cmps03.


castle

klucky
27.01.2006, 18:18
https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=235 dadrin ist sie enthalten ...