einen schönen guten Morgen! bin ein Anfänger in Sachen Mikroprozessor und kann verschiedene Zusammenhänge einfach nicht komplett begreifen. Die Erklärung auf diversen Internet-Seiten und im Skript ist zu trocken und bringt mich leider auch nicht viel weiter. Im Labor sollten wir eine Funktion zur Initialisierung der Ports erstellen. als erstes kam der Befehl DDRA=0x00; wie ich verstanden haben, ist DDRA allgemein ein Eingang und wird nun auf 0 geschaltet (LEDs aus). Dann kommt ein komischer PORTA .. Der wird mit 0xff auf 1 geschaltet. Die DDRB und PORTB werden auch auf 0xff geschaltet, also alle 1. danach kann man anfangen mit proz. zu arbeiten. Kann mir vielleicht jemand netterweise klar machen, wie diese komische DDRs und PORTs zusammenhängen? Vielen dank im Voraus.
RTFM!! DDR= Data Direction Register Es legt fest, ob die entsprechenden Pins eines Ports als Eingang oder Ausgang benutzt werden sollen.
Ich steh auch noch ziemlich am Anfang. Aber wie Ben___ schon sagte gibt DDRx jeweils die DataDirection fest, also ob Daten rein kommen oder raus gehen (Ein oder Ausgang). Mit PORTx kannst du dann sagen, dass ein Ausgang dann ein logisches High führen soll oder ein Low.
Dein ATmega(???) hat mehrere Ausgangsports (Port A, Port B, ...) deren Pins Px0 bis Px7 heißen. Zu jedem Port gehören drei Register: DDRx PORTx PINx Jedes dieser Register ist 8 Bit breit, die Bits 1-8 im Register entsprechen den Pins 0-7. Funktionen der Register: DDR -> Datenrichtung bestimmen (0=Eingang, 1=Ausgang) PORT -> Ausgaberegister PIN -> Eingaberegister Besonderheit des PORT-Registers: Seine Funktion ist vom DDR-Register abhängig. Wenn DDR = 0: Aktiviert/deaktiviert interne Pull-Ups Wenn DDR = 1: Schaltet Ausgangspin high/low Deswegen kannst du mit dem PORT-Register auch keine Eingangssignale lesen, du würdest nur den Status der Pull-Ups einlesen. Verwende also zum Einlesen das PIN-Register. Du solltest zu dem Thema mal allgemein nach Atmega, AVR-GCC, Ports & Pins usw. googlen, da kommt noch einiges mehr...
ach so, das heist DDR und PORT beschreiben ein Element des Mikroprozessors, sind aber für verschiedene Eigenschaften verantwortlich. So versteh ich das jetzt ..
hey Andy, das ist ne super Erklärung! herzlichen Dank! Die Sache wird allmählich klarer )) genau, das ist ein Atmel AVR. Gruß
Sascha M. schrieb: > Die Sache wird allmählich klarer )) genau Wenn du dir jetzt im Datenblatt im Abschnitt "Ports as General Digital I/O" die Abbildung "General digital I/O" ansiehst, kannst du genau sehen, wie die drei für einen Port zuständigen Register zusammenwirken.
Sascha M. schrieb: > allmählich klarer )) genau, das ist ein Atmel AVR. Gruß Und wenn du jetzt endlich mal die genaue Bezeichnung des µC bekanntgeben würdest, könnte man dir sogar das Datenblatt verlinken, das du offenbar nicht kennst.
Weißt du, es gibt noch so viele andere schöne Hobbies. Suche dir eines davon aus! Wie wäre es mit Synchronschwimmen?
Heißduscher schrieb: > Diesen Beitrag bewerten: > ▲ lesenswert > > ▼ nicht lesenswert > > > > Weißt du, es gibt noch so viele andere schöne Hobbies. > Suche dir eines davon aus! > > Wie wäre es mit Synchronschwimmen? Das schlimme ist, dass es ja scheinbar kein Hobby ist, sonder er Elektrotechnik oder technische Informatik oder etwas ähnliches studiert, was die beiden kleinen Wörtchen "Skript" und "Labor" in seinem Anfangspost suggerieren. So besonders didaktisch wertvoll scheint das Skript nicht zu sein. Persönliche Erfahrung mit MCU-Technik scheint auch nicht vorhanden zu sein. Wieso also studiert man dann überhaupt sowas? Jetzt hört man ja öfters, dass ein Studium einen lernfähig macht etc. pp. . Alles nur Hörensagen. Also wozu braucht man noch ein Studium, wenn man es nicht mal mehr schafft, sich selber Informationen zu besorgen?
EGS_TI schrieb: > So besonders didaktisch wertvoll scheint das > Skript nicht zu sein. Persönliche Erfahrung mit MCU-Technik scheint auch > nicht vorhanden zu sein. Wieso also studiert man dann überhaupt sowas? > Jetzt hört man ja öfters, dass ein Studium einen lernfähig macht etc. > pp. . > Alles nur Hörensagen. Also wozu braucht man noch ein Studium, wenn man > es nicht mal mehr schafft, sich selber Informationen zu besorgen? Kann man eigentlich das Fach "mikrocontroller.net-Forum" irgendwo studieren? Manche glauben das zumindest ;-)
Heißduscher schrieb: > Weißt du, es gibt noch so viele andere schöne Hobbies. > Suche dir eines davon aus! > > Wie wäre es mit Synchronschwimmen? haha)) guter Witz. Ne Synchronschwimmen ist mir schon zu schwer. Elektrotechnik fällt mir einfacher, vor allem, wenn man freundlicherweise Hilfe bekommt. Dadurch habt Ihr ja auch ein Vorteil, anstatt irgendwann dem Staat auf der Tasche zu liegen und Harz 4 zu beziehen, werde ich selbst einzahlen. Ist doch gut.
also nach euren freundlichen Beiträgen konnte ich nun auch was mit dem Datenblatt anfangen. Nur bin ich nicht ganz sicher ob einzelne Elemente auch wirklich das sind, was ich vermute. Sicherheitshalber habe ich ein einzelnes PORT raus genommen und eingezeichnet. Wenn Ihr mal kurz einen Blick rein werfen würdet und Bescheid sagen, ob das wirklich so ist) Danke!
datasheet schrieb: > Sascha M. schrieb: >> allmählich klarer )) genau, das ist ein Atmel AVR. Gruß > > Und wenn du jetzt endlich mal die genaue Bezeichnung des µC bekanntgeben > würdest, könnte man dir sogar das Datenblatt verlinken, das du offenbar > nicht kennst. Toll das du das Datenblatt kennst. Wir kennen es immer noch nicht.
Sascha M. schrieb: > also nach euren freundlichen Beiträgen konnte ich nun auch was mit dem > Datenblatt anfangen. Nur bin ich nicht ganz sicher ob einzelne Elemente > auch wirklich das sind, was ich vermute. Sicherheitshalber habe ich ein > einzelnes PORT raus genommen und eingezeichnet. Wenn Ihr mal kurz einen > Blick rein werfen würdet und Bescheid sagen, ob das wirklich so ist) > Danke! NEEEIN. DDR= Data Dir. Register, das stimmt und PORT=Data Register. Das steht sogar PORTF drin in dem Kasten. Warum sollen dann die Driver PORTF sein? Du solltest mehr den Text lesen und weniger Bilder angucken. Die Blockschaltbilder in den Datenblättern sind eher weniger informativ als die Texte. gruß cyblord
Habe hier ein Datenblatt vom ATtiny48 vorliegen und dort gibt es ein "Lesezeichen" im Adobe Reader namens "10. I/O-Ports". Darin findet man ab Seite 60 alle Informationen sehr gut erklärt. Da steht alles drin. In Prosa und mit selbsterklärendem Blockschaltbild, falls man schonmal was von Digitaltechnik gehört hat. Was hast du denn für eine Arbeitsweise? Wie bist du bei dem Problem jetzt genau vorgegangen? Und wieso ist das in eurem komischen Skript nicht näher beschrieben? An welcher HS studierst du?
Sascha M. schrieb: > also nach euren freundlichen Beiträgen konnte ich nun auch was mit dem > Datenblatt anfangen. Verrate jetzt endlich mal, von welchem verf..kten Prozessor du redest. Dann könnte man dir wenigstens die Zeilen im Datenblatt nenne, die du lesen solltest.
Zu deinem Bild: Welcher µC ist das? ATmega128? So wie du es eingezeichnet hast stimmt es nicht. Deine Angabe "Pins" ist korrekt, das sind die Pins zur Außenwelt (erkennt man daran das sie den gestrichelten Kasten verlassen). "PORTF DRIVERS" bezeichnet die Schaltungstechnik ("Treiber") des Ports - sie bekommt von den DDR und PORT Registern vorgeschrieben, wie sie den Port genau schalten muss (z.B. Pull-Up ein oder einen Pin auf High-Pegel treiben). An dieser Stelle sollten dir die drei möglichen Zustände eines solchen Pins wieder einfallen: - Tri-State: Treiber hochohmig, Eingang - High: Treiber niederohmig, Pin wird auf High-Pegel geschaltet - Low: Treiber niederohmig, Pin wird auf Low-Pegel geschaltet Der Kasten "DATA REGISTER" entspricht nicht zu 100% der Realität. In Wahrheit verstecken sich darin zwei verschiedene Datenregister: 1. PORT um Pins/Pullups zu schalten (Pfeil in Richtung PORTF DRIVERS) 2. PIN um Pins einzulesen (Pfeil in Richtung der Register) "DATA DIR. REG." bezeichnet das DDR-Register. Dieses Register gibt der Treiberelektronik vor, was sie jetzt mit den Daten aus dem PORT-Register tun soll: DDR 1: Daten aus PORT schalten die Pins high/low --> Pins ist ein Ausgang DDR 0: Daten aus PORT schalten die Pullups ein/aus --> Pin ist ein Eingang Blöde Frage am Rand: An welcher Schule gibt es so grottige Skripte?!
EGS_TI schrieb: > Was hast du denn für eine Arbeitsweise? Wie bist du bei dem Problem > jetzt genau vorgegangen? Und wieso ist das in eurem komischen Skript > nicht näher beschrieben? An welcher HS studierst du? also das vom Skript kapiere ich nicht. Da sind meist irgendwelche Abkürzungen und Diagramme. In Vorlesung verliert man so oft den Faden und kommt einfach nicht mit. Ich fange damit an, dass ich die Begriffe die in Vorlesung und Labor fallen aufschreibe und danach separat im Internet suche. In Laborvorbereitung bekommt man konkrete Anweisungen, was zu machen ist und davon lernt man bestimmte Prozesse z.B. das Programmieren blind zu realisieren. Durch das Programmieren merkt man auch einiges. Da stellt man z.B. DDRA auf 0 und PORTA auf 1. Das heißt DDR und PORT hängen irgendwie zusammen. Aber wie? Nach einer langen Suche ist mir das nicht klarer geworden, dann bitte ich um Hilfe im Forum. Nun bin ich noch ein Schritt weiter, doch das ist immer noch der Anfang..)
Sascha M. schrieb: > EGS_TI schrieb: > >> Was hast du denn für eine Arbeitsweise? Wie bist du bei dem Problem >> jetzt genau vorgegangen? Und wieso ist das in eurem komischen Skript >> nicht näher beschrieben? An welcher HS studierst du? > > also das vom Skript kapiere ich nicht. Da sind meist irgendwelche > Abkürzungen und Diagramme. In Vorlesung verliert man so oft den Faden > und kommt einfach nicht mit. > Ich fange damit an, dass ich die Begriffe die in Vorlesung und Labor > fallen aufschreibe und danach separat im Internet suche. In > Laborvorbereitung bekommt man konkrete Anweisungen, was zu machen ist > und davon lernt man bestimmte Prozesse z.B. das Programmieren blind zu > realisieren. Durch das Programmieren merkt man auch einiges. Da stellt > man z.B. DDRA auf 0 und PORTA auf 1. Das heißt DDR und PORT hängen > irgendwie zusammen. Aber wie? Nach einer langen Suche ist mir das nicht > klarer geworden, dann bitte ich um Hilfe im Forum. Nun bin ich noch ein > Schritt weiter, doch das ist immer noch der Anfang..) Falls das wirklich so ist, dann solltest du - deinen Prof fragen dass es das besser erklärt oder - deine Kommilitonen fragen, ob sies verstanden haben und dir erklären können oder - die ein anderes Fach suchen Du kannst nicht alles über Foren erfragen, dass ist auf Dauer nicht zielführend. Das Thema ist sicher nix für weitergehende Vorlesungen, und wenns an solchen Grundlagen hapert, das wird das aus meiner Sicht nix mit dem (diesem) Studium. Sorry, klingt jetzt hart, aber m.E. bist du bisher nicht in der Realität angekommen.
Andi schrieb: > Zu deinem Bild: > > Welcher µC ist das? ATmega128? > hey Andi, vielen vielen Dank für deine Beiträge! hat mich echt viel weiter gebracht! Ja das ist ein ATmega128 . das Bild hatte ich nicht vom Script, sondern irgendwo vom Datenblatt, doch Scripte sind für mich auch nicht viel verständlicher) Wenn der Prof es so erklären würde, wie Du jetzt gerade, bräuchte ich keine Hilfe von außen, doch meist ist das leider nicht der Fall (( Noch mal vielen, herzlichen Dank! Gruß
Sascha M. schrieb: > Da stellt > man z.B. DDRA auf 0 und PORTA auf 1. Das heißt DDR und PORT hängen > irgendwie zusammen. Aber wie? Da schaut man ins Datenblatt und liest den Text der dort steht und dann weiß man es. Darum gibt es das Datenblatt. Was meinst woher die Leute hier das wissen? Trial & Error? Du solltest dich weniger auf deinen Prof. verlassen und mehr selber recherchieren. Ein Studium ist in erster Linie immer ein Lernen für sich und aus verschiedenen Quellen. Die Vorlesung und das Skript sind da höchstens Hilfsmittel. gruß cyblord
::::::::::::::::::::::::::::::::::: schrieb: > Sorry, klingt jetzt hart, aber m.E. bist du bisher nicht in der Realität > angekommen. das sehe ich anderes. gerade diejenigen die alle Mittel nutzen um Grundlagen zu verstehen kommen weiter, als die, die gleich in Verzweifelung geraten und Studiengang wechseln, wenn sie etwas nicht kapieren. Solche Beiträge lese ich übrigens schon seit Anfang des Studiums und alle Fächer, um die es ging habe ich längst bestanden.
cyblord ---- schrieb: > > Du solltest dich weniger auf deinen Prof. verlassen und mehr selber > recherchieren. Ein Studium ist in erster Linie immer ein Lernen für sich > und aus verschiedenen Quellen. Die Vorlesung und das Skript sind da > höchstens Hilfsmittel. > > gruß cyblord jop, genauso mache ich das, danke! )
Sascha M. schrieb: > ::::::::::::::::::::::::::::::::::: schrieb: > >> Sorry, klingt jetzt hart, aber m.E. bist du bisher nicht in der Realität >> angekommen. > das sehe ich anderes. gerade diejenigen die alle Mittel nutzen um > Grundlagen zu verstehen kommen weiter ... Zu deinem Eingangsposting gabs am Anfang des Threads eine gute Erklärung von Andi, unten nochmals reinkopiert. Irgendwie erweckst du nicht den Eindruck, das verstanden zu haben. Sascha M. schrieb: > schon seit Anfang des > Studiums und alle Fächer, um die es ging habe ich längst bestanden. Welches Fach studierts du denn? Welches Semester bist du denn? Welchen Controller verwendest Du? Warum ist das für einen Studenten (der eine abgeschlossene Schulausbildung mit Hochschulreife hat) so schwierig, das Posting von Andi zu verstehen?!?!? Trollst Du? Fragen über Fragen ... Andi schrieb: > Dein ATmega(???) hat mehrere Ausgangsports (Port A, Port B, ...) deren > Pins Px0 bis Px7 heißen. > > Zu jedem Port gehören drei Register: > DDRx > PORTx > PINx > > Jedes dieser Register ist 8 Bit breit, die Bits 1-8 im Register > entsprechen den Pins 0-7. > > Funktionen der Register: > DDR -> Datenrichtung bestimmen (0=Eingang, 1=Ausgang) > PORT -> Ausgaberegister > PIN -> Eingaberegister > > Besonderheit des PORT-Registers: Seine Funktion ist vom DDR-Register > abhängig. > Wenn DDR = 0: Aktiviert/deaktiviert interne Pull-Ups > Wenn DDR = 1: Schaltet Ausgangspin high/low > > Deswegen kannst du mit dem PORT-Register auch keine Eingangssignale > lesen, du würdest nur den Status der Pull-Ups einlesen. > Verwende also zum Einlesen das PIN-Register. > > Du solltest zu dem Thema mal allgemein nach Atmega, AVR-GCC, Ports & > Pins usw. googlen, da kommt noch einiges mehr...
::::::::::::::::::::::::::::::::::: schrieb: > Zu deinem Eingangsposting gabs am Anfang des Threads eine gute Erklärung > von Andi, unten nochmals reinkopiert. > Irgendwie erweckst du nicht den Eindruck, das verstanden zu haben. ich habe es komplett verstanden, deine Eindrücke sind falsch. > Schulausbildung mit Hochschulreife hat) so schwierig, das Posting von > Andi zu verstehen?!?!? > > Trollst Du? > > Fragen über Fragen ... sinnlose Schlussfolgerungen erweckt durch falsche unbegründete Eindrücke.. trollst du?
ok, muss noch Bereichte für 3 Versuche zu Ende schreiben. Vielen Dank an die, die mir geholfen haben! )
Sascha M. schrieb: > also das vom Skript kapiere ich nicht. Da sind meist irgendwelche > Abkürzungen und Diagramme. In Vorlesung verliert man so oft den Faden > und kommt einfach nicht mit. > Ich fange damit an, dass ich die Begriffe die in Vorlesung und Labor > fallen aufschreibe und danach separat im Internet suche. In > Laborvorbereitung bekommt man konkrete Anweisungen, was zu machen ist > und davon lernt man bestimmte Prozesse z.B. das Programmieren blind zu > realisieren. Durch das Programmieren merkt man auch einiges. Da stellt > man z.B. DDRA auf 0 und PORTA auf 1. Das heißt DDR und PORT hängen > irgendwie zusammen. Aber wie? Nach einer langen Suche ist mir das nicht > klarer geworden, dann bitte ich um Hilfe im Forum. Nun bin ich noch ein > Schritt weiter, doch das ist immer noch der Anfang..) Falls du die Port-Geschichte noch nicht verstanden hast: hast du zufällig mal das Datenblatt vom ATiny48 runtergeladen und dir die Seiten die ich oben genannt habe angeschaut?
Sascha M. schrieb: > also das vom Skript kapiere ich nicht. Da sind meist irgendwelche > Abkürzungen und Diagramme. In Vorlesung verliert man so oft den Faden > und kommt einfach nicht mit. Zeig uns doch mal das Skript.
Hi Beim ATMega128 sollte aber die M103-Fuse gelöscht sein. Sonst funktionieren einige Ports etwas unerwartet: • Port C is output only. • Port G serves alternate functions only (not a general I/O port). • Port F serves as digital input only in addition to analog input to the ADC. MfG Spess
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.