Alter Neuer

Hallo,

Nun,
meinst Du den (fast) 60-jährigen?
OK.
Melde mich zur Stelle.
an dich hab ich dabei überhaupt nicht gedacht ... da war noch irgendein
anderer. Ich weiß aber nicht genau wer das war. Meiner Meinung nach sogar
schon in Rente/Vorruhestand oder so - kann das sein ? oder irre ich mich da ?


Hallo dino03,
bin wieder halbwegs fit.:)
Diese drei Routinen die Du mir da geschickt hast sind ja richtig toll!
Anfangs verstand ich wirklich nur Bahnhof, aber nach mehrmaligem Durchlesen,
denke ich, dass ich das sogar halbwegs begriffen habe. Ich musste zwar schon
um einige Ecken denken, aber ich glaube es wird heller, wenn auch nicht ganz.
Daher habe ich noch ein paar Fragen und bitte Dich um eine so gut verständliche
Antwort, wie die Erklärung bei den Befehlen (Kommentare)
Jaja .. Bei Assembler muß man teilweise "zwischen den Zeilen lesen" ;)


und los gehts ...
1.kann jeder Port (A bis D) als Ein- oder Ausgangsport benutzt bzw. definiert werden
und wenn ja, woher "weiß" der µP dann welcher Port ein Ein- oder Ausgang ist?
Das muss man ihm doch irgendwie mitteilen, oder?
Ports sind einmal vordefiniert für Standardaufgaben.
Hier mal in die Datenblätter reinschauen.

Zum andern konnen sie auch in gewissen Grenzen frei
als Ausgänge oder Eingänge und zwar Port-Bit-weise
konfiguriert werden.
genau so in der Art ...
Also es gibt bei größeren sogar noch mehr Ports. Ich glaube bis PortL geht
das bei den 100pinnern. Diese Ports (A bis ... L) sind die Standard digitalen
Ein- und Ausgänge des Prozessors. Die sind aber teilweise noch mit weiteren
Funktionen belegt. Manche Pins haben dann insgesamt bis zu 9 Funktionen.
zB beim Tiny85 der Pin 5 ...
PB0 / MOSI / DI / SDA / AIN0 / OC0A / nOC1A / AREF / PCINT0
Je nachdem, welche Funktionsblöcke (zB Timer, ...) man im Prozessor aktiviert
werden die Pins mit anderen Funktionen beschaltet. Man muß also schon
vorher etwas überlegen was man für seine Lösung für Funktionen benötigt
und danach dann die Schaltung aufbauen und die entsprechenden Funktionen
des Prozessors verwenden. Was der entsprechende Prozessor kann liest man
aber am besten im Datenblatt nach.
Die Pins sind also im Normalzustand mit der normalen Port-Funktion beschaltet.
Wenn man aber zB den USART-Sender aktiviert würde man die normale
Portfunktion an dem Pin abschalten und TxD auf diesem Pin aktivieren.


2.Was bedeutet DDRx (Data Direction Register), wird damit irgendwie festgelegt,
ob das ein Aus- oder Eingang ist?
Dazu gibt es Datenrichtungsregister für jeden Port DDRA für Port A
DDRB für Port B.
Diese können nicht direkt beschrieben werden, nur über den Umweg
Lade Wert in Temporärregister und dann Temporärregisterweret in Datenrichtungsregister.
so sieht das aus ... wie das genau geschieht kann man hier nachlesen ...
Mini-FAQ : Die Port-Register DDRx, PORTx, PINx (von mir)
und einmal für C-Programmierer von Nomis ...
GPIOs mit C
da sollte eigentlich alles über Standard-Portfunktionen erklärt sein.


3.bei allen 3 Beispielen die Du mir geschickt hast, steht:

(1) ldi r16,0x00 ; Wert für Port B - alles Eingänge
(2) out DDRB,r16 ; und setzen

(3) ldi r16,0xFF ; Wert für Port C - alles Ausgänge
(4) out DDRC,r16 ; und setzen

Das bedeutet doch für:

(1) Wert 0d wird in Register 16 geschrieben
(2) Alle Bits von Port B werden auf 0 gesetzt (was bedeutet hier DRB?)
(3) Wert 255d wird in Register 16 geschrieben
(4) Alle Bits von Port C werden auf 1 gesetzt (was bedeutet hier DRC?)
da man feste Werte nicht direkt in die I/O-Register schreiben kann ..
zB so ... out DDRB,0x00 (schreibe 0x00(hex) in das DataDirectionRegisterB)
muß man es mit dem Umweg über ein anderes Register machen.
Darum zuerst den Wert in Register r16 laden und dann den Inhalt von r16
in das IO-Register DDRB schreiben. Ist so und läßt sich leider nicht ändern.
Der Prozessor hat IO-Register, normale Register und SRAM. Das hängt alles
miteinander zusammen ist aber doch mit verschiedenen Funktionen und
Möglichkeiten versehen. Das wirst Du sogar schon bei den normalen Registern
merken. r0..r15 sind gegenüber r16..r31 eingeschränkt und können bei
manchen Assembler-Befehlen nicht verwendet werden. Sieh dir mal die
Liste der Assembler-Befehle (AVR Instruction Set (151 pages, revision G, updated 7/08)) an.
Da sind für jeden Befehl die Möglichkeiten, verwendbaren Register, Zyklen,
Beispiele und Erklärungen drin. Hab ich beim Programmieren immer griffbereit
neben mir ;)
Sieh auch mal hier ... http://www.avr-asm-tutorial.net/avr_de/index.html rein
da gibt es ein gutes Tutorial in deutsch ... beginner_de.pdf .
Die Hilfen im AVR-Studio sind auch nicht schlecht. Da lohnt es sich auch
reinzusehen.


Das würde heißen, wenn an Port C 8 LED's hängen leuchten die alle auf,
sofern nicht eine negierte Logik dazwischen hängt. Und es ist besser,
wenn man das so macht, weil wenn alle Bits von Port C = 0 wären,
weiß man nicht ob die LED's kaputt sind oder ein Ausgangsbit nicht geschaltet hat, oder?
nein ;) siehe den letzten Textblock und die FAQ von mir oder Nomis die ich
oben schon erwähnt habe.



Also nochmal vielen Dank für Deine Mühe:adore:

Gruß dschi dschei

PS: Könntest Du ein STK 500 für einen blutigen Anfänger wie mich
empfehlen und wenn ja, benötigt man da noch Zubehör?
Mach ich doch gern :)
Also ein STK500 lohnt eigentlich immer wenn man etwas mehr machen will.
Er hat verschiedene Takt-Quellen, Die Sockel können schon alle möglichen
Prozessoren fassen, Die Ports sind alle auf Pfostenstecker rausgeführt,
es gibt eine einstellbare Referenzspannungsquelle, 8 LEDs und Taster und
man kann den Prozessor mit dem Parallel-Programmermodus wiederbeleben
wenn man sich mal mit den Fuses vollständig ausgesperrt hat. Dafür knapp
80,-eur auszugeben finde ich nicht viel. Man kann sich dann erst mal den
AVRISPmk2 sparen. Wobei ich den eigentlich auch nicht mehr missen möchte.
Knapp 35,-eur für den ist auch nicht die Welt.

Ach ja ... beim STK500 ist noch nen ATmega8515 mit bei. Man kann also
mit der Kiste gleich loslegen ;)

Mittlerweile habe ich den AVRISPmkII , den STK500 , STK501 und STK503.
Damit kann ich also auch die 64- und die 100-pinnigen programmieren und
testen ;) Beim STK501 ist ein ATmega128 dabei und beim STK503 ein
ATmega1280. Also immer mit "Testobjekt" :D

So ... erst mal genug getippt :pcguru: die Finger müssen erst mal wieder
abkühlen ... (@Oskar : der jüngere Kollege hat sich ausgetobt :D )

Gruß
Dino
 
Hallo,
noch zu bemerken beim STK500-Board:
Die 10-poligen Steckverbindungen weisen auch noch gleich Vcc und GND auf, womit man für "Bastelplatinen" gleich die Spannungsversorgung mitgeliefert bekommt, Verpolirrtümer so gut wie ausgeschlossen sind. Es geht die rote LED an, falls mal versehentlich ein Flachbandkabel verkehrtherum angeschlossen sein sollte. Kurzschlüsse erkennt das Board also direkt, ohne gleich kaputtzugehen.

Zunächst sollte aber fürs Programmieren die Studio 4 Software mit allen Updates schon bei der ersten Installation auf dem PC installiert werden.
Die USB-Unterstützung muß bei der Abfrage "Install Updates" auf jeden Fall mit rein, auch, wenn sie nicht sofort benutzt werden sollte. Die serielle Verbindung sollte nach Möglichkeit eine "echte" sein. Also ein COM-Port am PC dafür locker machen. Zum Beispiel wo früher ein Analogmodem oder die serielle Maus dranhing. Wenn die moderneren Mainboards keine serielle Verbindung mehr aufweisen, sollte von vorne herein ein Evaluation-Board mit USB verwendet werden, die "Dongles" USB-auf-seriell könnten unter Umständen nicht richtig funktionieren.
OK. Es wird das richtige RS232 Kabel beim STK500-Board schon mitgeliefert. Die entsprechenden Handshakes sind schon fest verdrahtet, so daß man sofort eine Kommunikation herstellen kann, sich darüber keinen Kopf zu machen braucht.

Aber das STK500-Board hat schon standardmäßig ein kleines LED-Testprogramm auf dem ATMega8515 mit drauf.
Ganz am Anfang braucht man nur ein Netzteil (9 bis 12 Volt Gleichspannung) anschließen ...und los geht's.

Gruß von Oskar 01
 
Hallo,

Zunächst sollte aber fürs Programmieren die Studio 4 Software mit allen Updates schon bei der ersten Installation auf dem PC installiert werden.
Die USB-Unterstützung muß bei der Abfrage "Install Updates" auf jeden Fall mit rein, auch, wenn sie nicht sofort benutzt werden sollte. Die serielle Verbindung sollte nach Möglichkeit eine "echte" sein. Also ein COM-Port am PC dafür locker machen. Zum Beispiel wo früher ein Analogmodem oder die serielle Maus dranhing. Wenn die moderneren Mainboards keine serielle Verbindung mehr aufweisen, sollte von vorne herein ein Evaluation-Board mit USB verwendet werden, die "Dongles" USB-auf-seriell könnten unter Umständen nicht richtig funktionieren.
Jau. AVR-Studio gleich mit USB zu installieren ist ne gute Idee ;)
Ich hab mir bei Reichelt nen USB-Dongel besorgt. Läuft gut. Ich hab es
einfach direkt auf das STK500 gesteckt. Läuft echt gut.

OK. Es wird das gekreuzte RS232 Kabel beim STK500-Board schon mitgeliefert. Die entsprechenden Handshakes sind schon fest verdrahtet, so daß man sofort eine Kommunikation herstellen kann, sich darüber keinen Kopf zu machen braucht.
Also wie gesagt bei mir das Dongel in den PC (USB) und das hat sich als
COM3 installiert. dann das Ende mit dem 9pol Sub-D direkt in den STK500 :D
Beim AVR-Studio dann die entsprechende COM einstellen.

Aber das STK500-Board hat schon standardmäßig ein kleines LED-Testprogramm auf dem ATMega8515 mit drauf.
Ganz am Anfang braucht man nur ein Netzteil (9 bis 12 Volt Gleichspannung) anschließen ...und los geht's.
Als Netzteil hab ich nen kleinen 1A Steckernetzteil verwendet. Reicht aus.

Ich hab mir letztens die neue Version vom Studio runtergezogen. Kann ich ja
beim installieren mal Screenshots machen und den Ablauf hier reinpacken.

Gruß
Dino
 
Danke

Hallo dino03,

vielen Dank für all die ausführlichen Antworten +Links.
Ich finde es bewundernswert, dass es Leute gibt,
die auf "komische" Fragen irgendwelcher
wildfremder anderer Leute mit so einer Engelsgeduld Sachen
erklären und dann auch noch so viel schreiben.
Mir wären da schon längst die Finger "abgefallen"
mit meinem "AdlerKreisSuchUndHackSystem":yes4:

Jetzt hab ich ja erst mal genug zum Reinziehen.
Außerdem hab ich heute AVR Studio installiert. Muss
mal sehen ob ich da was zusammenkriege. Dauert sicher
ne ganze Weile bis ich das Ding überhaupt zum laufen kriege,
macht aber nichts. Wenn es am Schluss läuft, passt das schon.
Also hast Du erst mal Deine wohlverdiente Ruhe von mir.

Danke noch mal und schönes Wochenende

SchöneGrüße

dschi dschei

Danke auch an Oskar01
 
Hallo,

vielen Dank für all die ausführlichen Antworten +Links.
Ich finde es bewundernswert, dass es Leute gibt,
die auf "komische" Fragen irgendwelcher
wildfremder anderer Leute mit so einer Engelsgeduld Sachen
erklären und dann auch noch so viel schreiben.
Mir wären da schon längst die Finger "abgefallen"
mit meinem "AdlerKreisSuchUndHackSystem":yes4:
ich hab auf der Arbeit auch schon mal Schulungen gegeben ;)
Außerdem laber ich gerne viel :rolleyes:
Zehn-Finger hab ich nie gelernt aber mit meiner Methode und der
Übung bin ich auch verdammt fix beim tippen :D

Jetzt hab ich ja erst mal genug zum Reinziehen.
Außerdem hab ich heute AVR Studio installiert. Muss
mal sehen ob ich da was zusammenkriege. Dauert sicher
ne ganze Weile bis ich das Ding überhaupt zum laufen kriege,
macht aber nichts. Wenn es am Schluss läuft, passt das schon.
Also hast Du erst mal Deine wohlverdiente Ruhe von mir.
Ich drucke gerade die UserGuides und Schaltpläne vom STK500, STK501 und
STK503 aus ;) Bei nem Farblaser mit 20Seiten/min ist das ratz fatz erledigt
und auf Papier liest sich das besser und läßt sich besser nachschlagen ;)
das AVR-Studio werde ich wohl morgen mal Updaten und dabei dann gleich
die neueste Firmware aufs STK500 bringen. Die neueste Techlib-DVD hab ich
heute auch erst mal gezogen. Damit bin ich dann erst mal wieder auf dem
neuesten Stand.

Danke noch mal und schönes Wochenende
SchöneGrüße dschi dschei
Danke auch an Oskar01
Auch noch schönes Wochenende an alle und viel Spaß beim basteln ...

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)