Gast
#5432098
Hallo Forum, ich verwende das Atmel Studio 7 um einen ATSAMC20J18 auf einer selbstdesingten Platine zu programmieren. Das Programm verwendet die Libs des ASF. Mein Problem ist, dass ich nicht verstehe, warum die ASF I2C Lib "plötzlich" seinen internen Callback Handler nicht mehr korrekt registriert. Ich hatte bereits diverse Peripherie Module (TC0, TC2, TCC0, TCC2, SERCOM3, EINT, DMA, usw) am laufen. Dann habe ich das Modul SERCOM0 als I2C ebenfalls zum Laufen gebracht. Ich konnte fehlerfrei die Zeit aus der angeschlossenen RTC DS1337 auslesen. Danach habe ich mit der Implementierung des Modules SERCOM2 weitergemacht und dabei ist das Problem aufgetreten. Beim Debuggen des SERCOM2 hängte sich plötzlich das ganzes Programm auf. Der CallStack hat gezeigt, dass das Modul SERCOM0 (das eigentlich schon funktionierende I2C) plötzlich den Dummy_Handler aus startup_samc20.c aufruft und dort hängen bleibt. Nachdem ich alle Implementierungen zum SERCOM2 wieder entfernt hatte, bliebt das Problem trotzdem bestehen. Dann habe ich alles aus dem Programm entfernt, was nicht unbedingt für die I2C RTC benötigt wird und das Problem bleibt trotzdem immernoch bestehen. Diese "minimal" main.c befindet sich im Anhang. Ich finde in meinem Programm nichts mehr, was dafür verantwortlich sein könnte, dass die I2C Lib ihre +internen+ Callbacks nicht mehr registriert. Diese Lib-interne Funktion hatte bereits funktioniert und ich habe in der Lib nichts verändert. Ich habe sogar ein neues Projekt erzeugt und lediglich die Inhalte von main.c dort hinein kopiert. Das Problem ist wieder aufgetreten. Daher vermute ich, dass ich irgendein Verhalten des ASF nicht verstehe. Hat jemand eine Idee oder einen Tip?