Hallo Leute, ich bin der Neue und komme öfter
Kleine Vorstellung:
Erfahrung mit Mikrocontrollern hab ich schon länger. Hab in den 2000ern Motorsteuergeräte umprogrammiert, usw.
Jugendsünden halt.;D
Programmieren tue ich nur C und C angelehnte Sprachen, also PHP, Javascript, JAVA c# usw.
Assembler Erfahrung habe ich kaum.
Bin ein Kind der DDR und naja das reicht als Vorstellung denke ich.
Nun zum Problem:
Wie es der Titel schon Anmerkt bekomme ich keine Serielle Verbindung zu Stande zwischen einem Atemga8 und dem PC.
Am PC hängt ein USB zu TTL Adapter mit cp_ irgendwas Chip.
Nutze ich den internen 8MHz takt, dann funktioniert alles prima.
Nehme ich aber einen externen Baudratenquarz (7,3728 MHz), kommt nur Kyrillische Keilschrift an.
Programmieren tue ich in der ArduinoIDE 1.8.8 und als Programmer nutze ich den USBasp.
Als hardware package habe ich den MicroCore heruntergeladen
Die Einstellung ist wie folgt:
-Clock: “8MHz external”
-BOD disabed
-LTO disabled
-Bootloader Ja.
Danach bin ich auf Bootloader brennen gegangen und dann auf Hochladen mit Programmer.
Es geht nicht, es kommen nur kryptische Symbole in der Konsole.
Ich bin dann noch ein Schritt weiter gegangen und habe die fuses mit dem STK500 Programmiert unter Atmel Studio 7.
Bei SUT_CSEL bin ich alle Ext.Crystal/Resonator Medium Frequency Punkte durch, habe sogar mal High Frequency probiert.
Nix es kommt nach wie vor nur Keilschrift an.
F_CPU ist gesetzt auf 7372800L
Was mir nun aufgefallen ist, das wenn ich auf Binärdatei exportieren gehe steht in der Ausgabe:
avr/bin/avr-gcc -c -g -x assembler-with-cpp -mmcu=atmega8 -DF_CPU=8000000L -DARDUINO=10808 -DARDUINO_AVR_ATmega8 -DARDUINO_ARCH_AVR
DF_CPU ist immer das was ich in dem Menü ausgewählt habe.
Überschreibt der Compiler etwa mein define F_CPU beim compiliren?
Als Kondensatoren habe ich leider keine 22pF gegen GND sondern nur 20pF. Fällt das ins Gewicht?
Beim STK500 habe ich nur die Datei ohne bootloader gebrannt.
Hier der code:
/*
- Low Frequency ist bis 1Mhz, Medium ist bis 8Mhz und High über 8Mhz, also
bis 16 oder 20.*/
#include <Arduino.h>
#ifdef F_CPU
#undef F_CPU
#define F_CPU 7372800L//L = long UL = unsigned long
#endifvoid setup() {
Serial.begin(9600);
}void loop() {
String inStr = “”;Serial.println(“dies ist ein Test”);
while (Serial.available()) {
inStr = Serial.readString();// read the incoming data as string
}
if (inStr != “”) {
Serial.println(inStr);
}
}
Ähm wie macht man hier Code Tags?? ’
Danke im voraus.