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.
Gast
#5328364
Hast du die Fuses richtig eingestellt?
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
Gast
#5328379
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)
Gast
#5328395
wie übersetzt/linkst du das C++ Programm? Ist da das Arduino-"Betriebssystem" mit dazu gelinkt?
Gast
#5328398
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
Gast
#5328497
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 !
Das war`s ! Jetzt funktionieren beide Programme. Danke für eure Hilfe.
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 ?
Gast
#5333053
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?
Gast
#5333147
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
