- fchao-Sinus-Wechselrichter AliExpress         
Seite 7 von 18 ErsteErste ... 5678917 ... LetzteLetzte
Ergebnis 61 bis 70 von 173

Thema: Portbelegung auf ATMega für LCD1602

  1. #61
    HaWe
    Gast
    Anzeige

    Praxistest und DIY Projekte
    Sorry, ich hatte vergessen auf Zitat zu klicken.
    Ich bezog mich auf User seite5
    Arduino Welt was soll das denn sein
    und hatte auf dem Handy mangels Übersichtlichkeit die Postings verwechselt. Arduino ist ja auch open source und public domain und hat absolut nichts mit profitgeilen Marketing Dödeln zu tun.

  2. #62
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    174
    Zitat Zitat von HeSt Beitrag anzeigen
    Hallo allerseits,

    ich möchte nun endlich mit der Verwendung eines Displays an einem Mega8 oder/und Mega16 beginnen.
    Einige Beiträge habe ich ja schon gesichtet und studiert ... bin aber noch nicht ganz schlau daraus geworden ...
    Nun meine Fragen:
    Kann ich für einen 4-Bit-Betrieb des LCDs nur EINEN Port nutzen, wie es mir vorschwebt (siehe unten), oder muss ich Steuer- und Datenleitungen an getrennten Ports ausgeben?
    Wenn getrennt, hilft mir ja eine 4-Bit-Anwendung nichts, da ich mit den anderen 4-Port-Pins nichts steuern kann, weil ja bei der Ausgabe (einem OUT PORTx,ldc_data) ALLE PINs des PORTs angesprochen werden und somit andere Funktionen mit angesteuert würden!?.

    ZB (M16):
    ; PC0 / 22 > + Transitor VCC to LCD
    ; PC1 / 23 LCD RS (register select)
    ; PC2 / 24 LCD RW (read/write)
    ; PC3 / 25 LCD E (enable)
    ; PC4 / 26 \
    ; PC5 / 27 \ > Datalines for LCD 1602
    ; PC6 / 28 /
    ; PC7 / 29 /

    Gruß Heinz
    Du kannst grundsätzlich es so machen wie es dir beliebt. Ein Port für alles, ein Port für Steuer und ein Port für Datenleitungen oder im schlimssten Falle, falls der Port nicht ganz ausreicht auch nur einen Pin auf einen anderen Port legen.
    Bezug auf "weil ja bei der Ausgabe (einem OUT PORTx,ldc_data)":
    ldc_data = ein Register und im 4bit- Modus müssen eben 2mal 4bit übertragen werden. Somit bleibt das Highnibble immer 0 bei der Vorverabeitung. Damit das LCD die Daten auch richtig verarbeitet kann zb das RW, RS oder das Enablebit einzelnd gesetzt werden.
    RS, RW, Enable können als Bit/s deklariert werden
    1 = RS
    2 = RW
    3 = Enable

    zB:

    out PORTx , LCD_DATA
    sbi PORTx , RS
    sbi PORTx , RW
    sbi PORTx , Enable

    übersetzt ohne Deklarationen

    out PORTC , R16
    sbi PORTC , 1
    sbi PORTC , 2
    sbi PORTC , 3

    Letztendlich dienen die Deklarationen nur der Lesbarkeit in allen Programmiersprachen.
    https://www.mikrocontroller.net/arti...-Tutorial:_LCD

    Seriele 8bit-Ausgabe mit kleiner Hardwareerweiterung
    https://www.roboternetz.de/community...Seriel-ATMega8

    https://www.roboternetz.de/community...chnipsel/page2

    Zitat Zitat von HeSt Beitrag anzeigen
    Wo ich auch noch grüble ist, wie ich ADC-Werte in Volt umrechne und diese mit zumindest einer Kommastelle ausgeben kann - in Assembler!
    Guck mal hier
    https://www.roboternetz.de/community...ine-Bibliothek
    beinhaltet mehrere 16bit Matheroutinen.

  3. #63
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    Zitat Zitat von HaWe Beitrag anzeigen
    Arduino ist ja auch open source und public domain und hat absolut nichts mit profitgeilen Marketing Dödeln zu tun.
    ... träum weiter.

    mfg
    Achim

  4. #64
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Hi avr_racer,

    danke für deine Erklärungen.

    Das hab ich mittlerweile bereits so übernommen.

    Und danke für die Links!!
    Mit den Bibliotheken hab ich so mein Problem, weil ich den Programmierstil und Benamselung übernehmen müsste.
    Und bevor ich meine Programme daran anpasse, bin ich schneller, wenn ich mir ansehe, verstehe wie Routinen geschrieben sind, um sie dann in "meiner Welt" umzusetzen.
    Wahrscheinlich hab ich auch noch nicht kapiert, wie man "fremde" Bibliotheken verwendet. Aber bislang scheint es bei mir keinen Sinn zu machen (im Sinne von .include ...).
    Wer weiß, vielleicht bringt mir noch wer bei, wie man es richtig macht.

  5. #65
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    174
    Die Namensvergabe liegt ganz bei dir, das was für dich in deinem Programm für das jeweilige Projekt sinnhaft erscheint. Ein Ausblick für die Zukunft zeigt aber das man die entsprechenden Deklarationen beibehalten sollte, was eine enorme Verkürzung der Programmierung mit sich bringt. Hochsprachen sind auch nichts weiter als der sinnvolle Einsatz von Bibliotheken...

    Diese Bibliotheken gibs halt auch in C, C++, C# usw auch diese mussten mal geschrieben werden... nur am Rande.

    Bibiliotheken müssen nicht mal fremd sein es können auch deine eigenen sein aber es ist doch Schwachsinn sich jedesmal durchs Datenblatt des Controllers zu lesen.... Mensch wie wär did doch gleich... was ab und an Zeitaufwendig sein kann.

    Zum einbinden der Includes gibs 2 Möglichkeiten:
    1. alle Includedateien befinden sich in deinem Projektordner für das jeweilige Projekt. Das einbinden erfolgt dann ganz unten in deiner Hauptdatei.
    Beispiel:
    Hauptdatei = test.asm
    .include "controller"
    Dekalerationen Register/RAM
    Interrauptvektoren mit Sprung vom Resetvektor von .org 0000 rjmp INIT
    Init von Controller/Ports usw
    Hauptprogramm
    .include "weitere Unterprogramme"

    Nachteil ist wenn man in Unterschiedlichen Projekten die gleichen Routinen/Unterprogramme braucht hat man vllt das Original verändert...

    2. Wenn man sich seine eigenen Bibiliotheken schreibt werden alle Routinen, die allgemein sind, in einen Ordner aufbewahrt, selbiges trifft auch für controllergebundene Routinen zu die in zb in ATmega8 Ordner abgelegt werden. Bei einem neuen Projekt werden die entsprechenden Dateien einfach nur kopiert und siehe Punkt 1 als Include eingebunden.

    Vorteil du kannst in dem jeweiligen Projekt die Dateien unter Umständen anpassen ohne das es sich auf andere Projekte auswirkt.

    So wie du angefangen hast hab ich auch mal angefangen bis mir folgender Satz entgegen gebracht worden ist:
    Lieber gut kopiert als schlecht selbstgeschrieben! Verfasser unbekannt. Lernen heißt kopieren gerade am Anfang.

    Hast du denn mal Programmcode den man sich mal anschauen kann ?
    Mit welcher Software prgrammierst du AtmelStudio 4/7 ?

    http://www.avr-asm-tutorial.net/avr_...ner/warum.html
    http://www.avr-asm-tutorial.net/avr_de/index.html

  6. #66
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    Was mich abhält fertige (fremde) Bibliotheken zu verwenden ist die Tatsache, dass andere Definitionen von Registern und dergleichen verwendet werden. Sie passen absolut nicht in meine Namensgebung. Wie kann ich sie denn da einbinden!?
    Zitat Zitat von avr_racer Beitrag anzeigen
    Lieber gut kopiert als schlecht selbstgeschrieben! Verfasser unbekannt. Lernen heißt kopieren gerade am Anfang.
    Das mache ich ja, indem ich mir Bibliotheken schnappe, den Code kopiere und an meine Umgebung anpasse. Aber einfach mit .include einbinden ist nicht möglich.
    Zitat Zitat von avr_racer Beitrag anzeigen
    Mit welcher Software prgrammierst du AtmelStudio 4/7 ?
    Zum "Schreiben/Codieren" verwende ich einen ganz normalen Texteditor.
    Zum Compilieren verwende ich AVR Studio4 (hab 6 auch auf dem Rechner, aber 4 bin beim debug gewöhnt). Und noch reicht 4, da all meine µCs enthalten sind.
    Zum codieren ist mir AVR zu umständlich.
    Zitat Zitat von avr_racer Beitrag anzeigen
    Hast du denn mal Programmcode den man sich mal anschauen kann ?
    Sieh PN

  7. #67
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    174
    Zitat Zitat von HeSt Beitrag anzeigen
    Was mich abhält fertige (fremde) Bibliotheken zu verwenden ist die Tatsache, dass andere Definitionen von Registern und dergleichen verwendet werden. Sie passen absolut nicht in meine Namensgebung. Wie kann ich sie denn da einbinden!?
    Ähm auch da ist das Studio hilfreich in dem man einfach STR+F drückt und alles mit dem gesuchten Wort ersetzen kann wenn man es unbedingt umändern möchte.
    Oder man schreibt es eben komplett ab mit seiner Namensgebung

    Zitat Zitat von HeSt Beitrag anzeigen
    Das mache ich ja, indem ich mir Bibliotheken schnappe, den Code kopiere und an meine Umgebung anpasse. Aber einfach mit .include einbinden ist nicht möglich.
    mmhhh gut da brauch ich erstmal den Quellcode.
    Für Studio4
    http://www.alenck.de/AVR_Tutorial_Gr.../Tools_205.pdf


    Zitat Zitat von HeSt Beitrag anzeigen
    Zum "Schreiben/Codieren" verwende ich einen ganz normalen Texteditor.
    Zum Compilieren verwende ich AVR Studio4 (hab 6 auch auf dem Rechner, aber 4 bin beim debug gewöhnt). Und noch reicht 4, da all meine µCs enthalten sind.
    Zum codieren ist mir AVR zu umständlich.
    persönlich habe ich mit einem reinen Editor nie gearbeitet fands immer problematisch.
    Studio 4 ist in Performance gegebenüber 4+ unschalgbar.

    Zitat Zitat von HeSt Beitrag anzeigen
    Sieh PN
    PN

  8. #68
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    @HeSt

    Wenn Du nur Texteditor benutzt zum programmieren, dann schau Dir doch mal EditPad an. Ich verwende unter Windows immer schon EditPad Lite. Unter DOS habe ich in den 90ern immer mit Tempest gearbeitet (Data Becker) das fand ich für DOS genial.
    Ich weiß nicht, ob es das EditPad, wie ich es nutze, mittlerweile noch zum Download gibt, aber es gibt eine Pro-Version davon: http://www.editpadpro.com/de.html

    MfG

  9. #69
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.09.2008
    Ort
    Linz A
    Beiträge
    126
    So, Leute,
    danke für eure guten Tipps!

    Aber belassen wir es dabei, wie es derzeit ist:
    Ich arbeite auf einem MacBook und schreibe mit dem standardmäßigen Texteditor (den kenn ich in- und auswendig).
    Das AVR-Studio läuft in einer Windows-Session am Mac. Wird nur zum umwandeln und debuggen gestartet/genutzt.

    Damit möchte ich die Diskussion über wie was womit besser/einfacher zu handhaben ist als beendet wissen.

    Nun wünsche ich euch noch einen Guten Rutsch!!

  10. #70
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Damit möchte ich die Diskussion über wie was womit besser/einfacher zu handhaben ist als beendet wissen.
    Hast ja Recht! Das hat mit dem Ursprungsthema nix mehr zu tun.
    Wenn Du Dich ja doch noch umentscheidest und Probleme hast, kannst Du nen neuen Post machen.
    Für alle hier einen guten Rutsch!!!

Seite 7 von 18 ErsteErste ... 5678917 ... LetzteLetzte

Ähnliche Themen

  1. [ERLEDIGT] Atmega 644 & atmega8 parallel am ISP ... Reset beider atmega notwendig ..
    Von Ritchie im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 29.03.2013, 12:18
  2. CCPRO M128: Portbelegung
    Von Dirk im Forum Robby RP6
    Antworten: 0
    Letzter Beitrag: 22.05.2009, 23:26
  3. Portbelegung bei diesem Display [erledigt]
    Von Rob.Anfänger im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 18.11.2006, 19:12
  4. Portbelegung ATmega32
    Von Rob.Anfänger im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 15.11.2006, 20:59
  5. Antworten: 4
    Letzter Beitrag: 12.11.2006, 17:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress