C++ Macht Atmega16 Kaputt?
Nabend!
Ich habe ein sehr Seltsames Problem.
Da ich demnächst mit dem CAN Bus arbeiten werde, wollte ich mir erstmal eine kleine Testschaltung aufbauen.
Früher habe ich immer Atmegas in reinem C programmiert, dann bin ich auf ATxmegas und C++ umgestiegen.
Da ich für die Testschaltung nicht extra eine Platine fertigen lassen möchte, habe ich einen ATmega16 verwendet, den ich per Fädeltechnik verdrahten kann.
Ich habe das Programm nun in C++ geschrieben, damit ich später die Klassen, die zur Steuerung des CAN-Bus benötigt werden auch auf dem Xmega verwenden kann.
Das Problem ist, wenn ich das Programm auf den Atmega spiele, lässt er sich im Anschluss nicht mehr programmieren.
Bevor ich ein Programm aufspiele kann ich so oft ich will die Signatur auslesen, Fusebits auslesen oder auch Fusebits verändern.
Nachdem ich ein Programm aufgespielt habe ist gar keine Kommunikation mehr möglich.
Um dies zu erkennen mussten 3 Atmegas dran glauben :(
Ich kann mir das nicht erklären, sowas ist mir bisher immer nur passiert, wenn ich fusebits falsch gesetzt habe, aber noch nie nur durch das Programm an sich.
Danach habe ich probiert, ein Programm in C zu schreiben und es aufzuspielen, das funktioniert fehlerfrei.
Warum gibt es also nur Probleme wenn ich das Programm in C++ schreibe?
Auf github ist mein Programm hier zu finden:
https://github.com/crabtack/CAN-Bus
Ich kann mir das einfach nicht erklären?
Hat jemand eine Idee, woran es liegen kann oder ein ähnliches Problem schon einmal gehabt?
Ich verwende Atmel Studio 6.1 und den DIAMEX All AVR Programmer.
mfg
Olaf