Hallo, ich möchte gerne für ein Projekt einen Atmega128(a) benutzen. Nach einigen Schwierigkeiten, ist es mit jetzt gelungen diesen über die Arduino-IDE zu programmieren. Leider klappt die nur in C programmierung. Sobald ich ein Programm in C++ schreibe und dieses auf den Chip übertrage, passiert nchts. Folgende Libary habe ich mir für den Atmega128 heruntergeladen: https://github.com/MCUdude/MegaCore Ich würde mich sehr freuen wenn es eine Lösung gibt,Programme auch in C++ zu programmierung und auf den Atmel zu schreiben Hier einmal meine beiden Test-Blink-Programme In C++ --------------------------------------------- void setup() { pinMode(8, OUTPUT); } void loop() { digitalWrite(8, HIGH); delay(1000); digitalWrite(8, LOW); delay(1000); } --------------------------------------------- Und einmal in C Programmierung: --------------------------------------------- #include <avr/io.h> #include <util/delay.h> #define LED 0 // 0 steht für den Portpin == 0=PB0 1=PB1 .... int main() { DDRB |= (1<<LED); // Configure PORTB0 as output while(1) { PORTB |= (1<<LED); // Turn ON Led connected to PORTB0 _delay_ms(1000); // Wait for some time PORTB &= ~(1<<LED); // Turn OFF Led connected to PORTB0 _delay_ms(1000); // Wait for some time } return 0; } --------------------------------------------- Freue mich über jeden Vorschlag und Idee. Vielen Dank im Voraus.
:
Bearbeitet durch User
LOW Fuses = 0XFF HIGH Fuses = 0X99 Extended Fuses = 0X01 Lockbits = 0X3F Bisher habe ich nur die Low Fuses auf 0XFF geändert Ich benutze einen Externen 16Mhz Quarz mit 22pf. Der PEN-Pin ligt mit 10Kohm auf VCC
S. M. schrieb: > Sobald ich ein Programm in C++ schreibe und dieses auf den Chip > übertrage, passiert nchts. S. M. schrieb: > Und einmal in C Programmierung: In einer Hinsicht, kann ich dich beruhigen: Auch das ist C++. C++ funktioniert also. (auch wenn du das nicht glaubst)
wie übersetzt/linkst du das C++ Programm? Ist da das Arduino-"Betriebssystem" mit dazu gelinkt?
Du hast also JTAG enabled, dadurch entfallen einige I/O Pins. Du hast den ATmega103 Kompatibilitätsmodus noch eingeschaltet, musst dann also auch für diesen compilieren.
Danke für eure Antworten Welche Fuses müsste ich denn setzen. Wenn ich die Fuses wie folgt setzte, wäre das dann richtig ? LOW = 0XFF HIGH = 0XD9 Extended = 0XFF Lockbits = 0X3F
:
Bearbeitet durch User
Wenn die Boarddefinition in Ordnung ist, dann sollte es reichen, wenn du das gewünschte Konfiguration auswählst, einen der vielen unterstützten ISP Programmer dran steckst und "Bootloader brennen" drückst.
Ich nutze einen "USBtiny simple usb Programmer" mit dem "myAVR ProgTool V1.39" Programm. Mal sehen ob es jetzt klappt !
Ich hätte noch eine Frage annähernd an dieses Thema. Ich würde gerne den Atmega128 (oder auch einen Atmega328) mit einem CH340g Treiber über USB und der Arduino-IDE programmieren. Dafür habe ich folgenden Schaltplan für den CH340G (Anhang) erstellt und ihn mit dem Atmega verbunden. Leider musst ich feststellen, das auch nach der Treiberinstallation des CH340G ein Upload nicht geht, auch wenn die Arduino-IDE den Chip erkennt. Darauf hin habe ich den Treiber an meinen Arduino Nano angeschlossen und siehe da, es funktioniert. Letztlich habe ich es noch mit einem "CP2102 UART-TTL Modul" ausprobiert, mit dem selben Ergebnis. Kann es sein, dass mir der Arduino Bootloader auf den Atmel`s fehlt, um ihn mit dem CH340g programmieren zu können oder an den Fuses ?
:
Bearbeitet durch User
S. M. schrieb: > Kann es sein, dass mir der Arduino Bootloader auf den Atmel`s fehlt, um > ihn mit dem CH340g programmieren zu können oder an den Fuses ? Beides! Für den Bootloader müssen auch die Fuses passend gesetzt werden.
Ich habe die Fuses vom Atmega128 letztens so gesetzt. S. M. schrieb: > LOW = 0XFF > HIGH = 0XD9 > Extended = 0XFF > Lockbits = 0X3F Könntet ihr mir sagen welche ich umändern muss damit es klappt?
Den Arduino Bootloader installiert man üblicherweise mit der Arduino IDE bei Benutzung eines ISP Programmieradapters. Die IDE enthält für zahlreiche AVR Controller den passenden Bootloader und sie setzt auch automatisch die Fuses dazu passend. ISP Programmieradapter kauft man in der Regel als fertiges Produkt. Man kann sogar einen bestehenden Arduino als ISP Programmieradapter verwenden, dazu gibt es einen entsprechenden Sketch. https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader
Damit hätte ich mir meine anfängliche Frage des Themas eigentlich sparen können. Hat jetzt alles, wunderbar von alleine geklappt und funktioniert. Danke
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.