Hallo Langsam versteh ich die Welt nicht mehr! Ich habe 2 ATMega16 per SPI verbunden. (software von mc-project.de, an den ATMega16 angepasst) Der Master sendet jede 4 sec ein Code an den Slave der dann eine LED an/ausschält. Beim ersten durchlauf wird eine '0' gesendet, wodurch die LED an geht. Klappt auch Prima! Nur beim 2. durch lauf wo er eine '1' sendet (zumindest soll) geht nix mehr.Egal, was ich beim 2. Suchlauf sende geht nicht. Ich hab mal ein Oszi dran gemacht und mal am SCK / SS(Slave) geschaut, was rauskommt: 1.Durchgang: SCK -> Sieht man ganz deutlich den Takt. SS -> Geht kurtz auf LOW und dann wieder auf High 2.Durchgang: SCK -> Geht einfach auf High (und macht nix sonst) SS -> geht einfach auf LOW (und macht nix mehr) so bin ich darauf gekommen, dass er er in der schleife zum testen ob alles gesendet wurde hängen bleibt. Hab die Stelle im code markiert. Hoffentlich kann mir jemand helfen !!!! Bin für jede hilfe dankbar !!!! MfG Sf2
Guten Morgen, dein Problem war ganz schon verzwickt, hab ich habs jetzt rausgefunden. Das Problem ist das du PB0 als SS hernimmst. Dadurch machst du indirekt PB4 (SS) als Input. Da du aber im Mastermode bist passiert nun folgendes. Der Controller erkennt aktivität am SPI und löscht alle Register und wird zum Slave, hat was mit Mulitmaster zu tun. Lies dir mal im Datenblatt den Absatz "SS Pin Functionality" -> "Master Mode" durch. Wenn du jetzt einfach zu deiner master_init() noch DDRB |= (1 << PB0); dazuschreibst müsste es klappen. Wünsch noch einen schönen Sonntag Christian
ach sorry, zu deinem Code musst du noch DDRB |= ( 1 << PB4); /*SS als Output definieren, dann passiert nichts */ hinzufügen
Auu mann ich bin soooooo dumm ! Eigentlich hätt ich wissen müssen das ich SS als eingang definieren muss. Ich bin immer fest davon ausgegangen, der wäre ein Ausgang. @ElMachel: Vielen Vielen Dank !!!!! Und ein Schönes Jahr ! MfG Sf2
Hi, es kommt darauf an welchen ISP du hast. Falls du einem mit 74hc2xx hast dann sind die Ausgaenge Tristate und stoeren nicht. Mfg Dirk
Ja, hab mir einen mit 74hc244 gebastelt. macht es auch dem 2. avr der angeschlossen ist auch nix aus ? dann müsst ich nur noch die reset stecker wechseln um dein anderen zu programmieren. MfG
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.