www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR-ctrl Demoprogramm fehler?


Autor: Georg R. (bambus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe mir bei "http://www.mikrocontroller.com/de/avr-ctrl.php" eine 
"AVR-Ctrl"-Platine bestellt, diese bestückt und da ich keine
Ahnung von der ganzen Materie habe, im Downloadbereich das Demo Programm 
"Demo1b" runtergeladen.
(Controller: Atmega32)
Weiters habe ich mir die neueste Version von WinAVR installiert, sowie 
PonyProg.

Als erstes habe ich natürlich versucht das Programm auf den Controller 
zu übertragen, und da ist auch schon mein Problem:

Überspiele ich die "AVRmain.hex" läuft alles einwandfrei.
Überspiele ich aber die "main.hex" flimmern nur ein Paar Buchstaben im 
Dislay, die vermuten lassen dass es ungefähr so was bedeuten sollte wie 
bei "AVRmain.hex".

Das wäre ja auch noch nicht so schlimm da ich ja nun weiß dass alles 
funktioniert, aber wenn ich das Programm umschreiben möchte

steht mir scheinbar nur die main-datei zur verfügung und selbst wenn ich 
nur text ändere passiert immer das was ich oben

beschrieben habe, flimmern!

wundert mich auch nicht denn wenn die Ursprungsdatei main.hex schon 
nicht funktioniert, warum sollte dann etwas anderes.

Hier jetzt meine Bitte:

kann das jemand nachvollziehen bzw. ausprobieren und mir dann bescheid 
geben.

Habe auch schon versucht mit einem kleinen Programm einfach alle PINs 
auf high zu setzten, und zwar so:

#include <avr/io.h>

int main (void)
{
 {
  DDRA = 0xff;
    PORTA = 0b11111111;

  DDRB = 0xff;
    PORTB = 0b11111111;

  DDRC = 0xff;
    PORTC = 0b11111111;

  DDRD = 0xff;
    PORTD = 0b11111111;
 }
}

Ich kanns einwandfrei copilieren und überspielen, aber passiert ist noch 
nichts, kein leuchten oder so?
mache ich einen sehr großen Fehler, oder wie müsste der Programmcode 
aussehen?
sollte ich überhaupt aufhören mit mikrocontrolllern zu experimentieren?
bitte bitte helft mir!!!

Georg

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> DDRA = 0xff;

Das setzt die Pins auf Eingang.
Ausgang geht so:

 DDRA = 0x00;

Autor: Hans Ganz (Firma: ACC) (karlos5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, er setzt sie auf Ausgang ;)
Sollte funktionieren..zeig ma deine schaltung?

Autor: Hans Ganz (Firma: ACC) (karlos5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Proramm sollte so lauten

#include <avr/io.h>

void main (void)
{

while(1) //Ganz Wichtig!!!!!!
 {
  DDRA = 0xff;
    PORTA = 0b11111111;

  DDRB = 0xff;
    PORTB = 0b11111111;

  DDRC = 0xff;
    PORTC = 0b11111111;

  DDRD = 0xff;
    PORTD = 0b11111111;
 }

}

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Nein, er setzt sie auf Ausgang ;)

Arrgh, jetzt war ich gerade wieder bei den PIC.
Muss das eigentlich jeder anders machen ;)

@ Georg
Ignoriere meinen Post :(

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>steht mir scheinbar nur die main-datei zur verfügung und selbst wenn ich
>nur text ändere passiert immer das was ich oben
>beschrieben habe, flimmern!

So ein Display flimmert gerne wenn man sowas macht:

 while(1)
  {
    Lösche Display
    Schreibe Text
  }

Der Text ist gerade geschrieben und dann wird er
sofort wieder gelöscht und neu geschrieben, und wieder
gelöscht......

Autor: Teplotaxl X. (t3plot4x1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm.. Stöpsel mal den Programmer vom Prozessor ab, und guck, ob die 
Reset-leitung auf High liegt.

Autor: Georg R. (bambus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Holger:  es ist nicht so ein Flimmern wie du denkst, es schreibt statt 
"holger Buss menue Demo" abwechselnd alle buchstben auf einem Zeichen 
manchal auch auf zwei oder mehr oder überhaupt nur irgendwelche wirren 
zeichen wie Fragezeichen, pfeile und punkte.

@Sir alan Teplotaxl: bin dabei dauert aber noch kurz

Autor: Georg R. (bambus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hans Ganz: Die Schaltung ist auf 
"http://www.mikrocontroller.com/de/avr-ctrl.php" im unteren viertel der 
website.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>@Holger:  es ist nicht so ein Flimmern wie du denkst, es schreibt statt
>"holger Buss menue Demo" abwechselnd alle buchstben auf einem Zeichen
>manchal auch auf zwei oder mehr oder überhaupt nur irgendwelche wirren
>zeichen wie Fragezeichen, pfeile und punkte.

Das ist auch kein Wunder wenn ich mir den Quellcode ansehe ;)
Der ist von 2005. Delays mit for() Schleifen in lcd.c. Herzlichen
Glückwunsch. Das klappt bei einem optimierenden Compiler nie.

Gleich zurückschicken das Teil und Geld zurück verlangen.

Autor: Georg R. (bambus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also meine Resetleitung liegt auf high! was heisst das jetzt?

Autor: Georg R. (bambus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie meinst du das, die Platine hat doch nichts damit zu tun wie ich 
meine Delays Programmier oder?

Autor: Teplotaxl X. (t3plot4x1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heißt, dass das Programm laufen sollte. Es soll auch schon fälle 
gegeben haben, bei denen der LPT-Progger Reset ständig auf low gezogen 
hat. Nen pullup ist dran? Du misst doch hoffentlich gegen GND ;)

Autor: Georg R. (bambus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen!

JA also Pullup is dran und gegen Masse habe ich auch gemessen.

Also vielleicht mach ich bei der Programmierung einen Fehler:

Programmers Notepad (PN) -> Programm schreiben
Mfile -> Makefile erstellen mit den Parametern:
 - main file name - main
 - MCU-type - Atmega32
 - Pogrammer - dt006
 - Port - Lpt1
PN -> Main compilieren
Mikrocontroller an Pc anschließen und die Stromversorgung einschalten
Ponyprog - Hex-file auf controller schreiben
ISP Kabel abstecken und eventuell den controller nochmal aus und 
einschalten (wohl eher nur aus hoffnung hatte noch keinen erfolg damit)

Der Fehler muss doch irgendwo bei der Programmierung liegen, sonst würde 
doch das Demoprogramm auch nicht funktionieren oder?

Autor: Georg R. (bambus)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal die Schaltung, kann es sein dass ich die Ausgänge alle auf low 
setzen muss damit das LED array leuchtet?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hier mal die Schaltung, kann es sein dass ich die Ausgänge alle auf low
>setzen muss damit das LED array leuchtet?

Einfach mal ausprobieren?

Autor: Georg R. (bambus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle Zusammen!

nach langem Studieren der Schaltung und einem Geistesblitz habe ich das 
LED Array umgedreht und siehe da kaum ist es nicht in Sperrichtung 
eingebaut funktioniert alles so wie es sollte!! zumindest alle Ausgänge 
auf 1 oder 0 setzen.

Danke für eure Hilfe und einen schönen Abend
wünscht euch Georg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.