Forum: Mikrocontroller und Digitale Elektronik Nicht nachvollziehbares Verhalten beim Programmieren


von spyder (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich hab folgendes Problem:

Wenn ich ein Programm für meinen ATmega8 mit Programmers Notepad auf den 
Controller lade, dann funktioniert es nicht ordnungsgemäß. Ich nehme 
dann die Stromversorgung von meinem Testboard, warte einige Sekunden, um 
sie dann wieder anzuschließen aber das Programm funktioniert trotzdem 
nicht von Anfang an. Genauer gesagt geht das in diesem Fall das LCD 
nicht.
Mache ich das gleiche mit Bascom - also ein Programm in Bascom auf den 
µC laden- dann funktioniert alles wunderbar. Wenn ich nun, nachdem das 
Bascom Prog oben mit programmers notepad ein Prog drauflade, 
funktioniert das Programm einwandfrei, selbst nachdem ich die Verbindung 
zum PC getrennt habe. Mache ich jedoch einen Reset (Stromversorgung weg- 
und wieder zuschalten), dann geht das Prog wieder nicht ordnungsgemäß. 
Es scheint also zu funktionieren, wenn man vorher mit Bascom etwas 
rauflädt und dazwischen keinen Reset durchführt. Das kapiere ich nicht!

Was mache ich falsch?

Ich weis nicht, liegt das vielleicht am Makefile oder schreibt Bascom 
die Fuses beim Programmieren, was dann programmers notepad nicht macht 
oder fliegt da reine zufällig immer ein Neutrino durch meinen ATmega und 
kippt die Bits?


mfg spyder

von spyder (Gast)


Angehängte Dateien:

Lesenswert?

ich habe noch einen Screenshot von avrdude gui gemacht. könnte ja auch 
an den einstellungen dort liegen.

lg spyder

von Stefan N. (laser)


Lesenswert?

Hat zwar nichts mit deinem Problem zu tun, aber ich würde gerne wissen, 
wie du es geschafft hast, dass dein Screenshot von unten nach oben 
aufgebaut wird und nicht von oben nach unten, wie normalerweise.

von Εrnst B. (ernst)


Lesenswert?

Liegts vielleicht an der "-n" Option für avrdude?
Die bewirkt das avrdude erstmal garnix macht...

von Dietmar E (Gast)


Lesenswert?

Wenn sich das Progamm nach dem Soft-Reset per Programmer anders verhält, 
als nach "Reset" per Power-Schalter, dann ist das vieleicht ein Problem 
mit der Stromversorgung ("slow rising power"). Mach mal, bevor das LCD 
initialisiert wird, eine Pause von 500ms rein. Weiss nicht, wie man das 
in BASIC macht.

> Wenn ich nun, nachdem das Bascom Prog oben mit programmers notepad ein Prog 
drauflade

???

von Falks Vertretung (Gast)


Lesenswert?

@Spyder:

Du solltest Dir dringend mal den Wikiartikel über Bildformate reinziehn.

von spyder (Gast)


Lesenswert?

Wartezeiten hab ich für das LCD schon eingebaut aber das ändert nix. 
meiner meinung nach müsste da wirklich an den einstellungen in avrdude 
was falsch sein. der mikrocontroller sollte ja auch ohne lpt-verbindung 
zum pc funktionieren. zum bild kann ich nur sagen, dass ich einen 
screenshot als .bmp abgespeichert hatte. aber hier im forum kann man das 
nicht raufladen, also hab ichs kurzerhand in .jpg umbenannt. ich weis 
nicht sehr sauber aber wollte mir das konvertieren ersparen.

lg spyder

von spyder (Gast)


Angehängte Dateien:

Lesenswert?

Gibts denn hier keinen der mir helfen kann??? Ich stell jetzt einmal den 
Abschnitt des LCDs im C-Programm und ein Testprogramm in Bascom online. 
In der main-Methode mache ich am Anfang
1
lcd_init();lcd_clear();DDRB |= 0x3F;delay_ms (50);lcd_clear();

Das Bascom-Prog funktioniert nach jedem mal Spannungsversorgung ein- und 
ausstecken. Beim C-Prog geht das LCD nicht, wenn man hier die 
Versorgungsspannung weg- und wieder hingibt. Liegts an der 
Initialisierung vom LCD??
Ich komme einfach nicht drauf.

lg spyder

von spyder (Gast)


Angehängte Dateien:

Lesenswert?

Das funktionierende Bascom-Programm.

von Lötkünstler (Gast)


Lesenswert?

Muss im C-Programm nicht eine MAIN-Procedure stehen?

Hab schon lange nicht mehr in C programmiert daher nur ein Schuß ins 
Blaue.

Lötkünstler

<Mit der Lizenz zum löten>

von spyder (Gast)


Lesenswert?

Ja schon. Aber ich hab hier nur die Datei, wo die Funktionen für das LCD 
ausprogrammiert sind online gestellt. Die main funktion ist nicht 
weiters spektakulär, deshalb habe ich sie gleich weggelassen. für mich 
ist wichtig, ob die initialisierung des LCDs richtig ist.

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
Noch kein Account? Hier anmelden.