www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Eins zwei Anfänger fragen ;)


Autor: Dennis Brücke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal Hi @all,

der Begriff Anfänger ist vieleicht ein wenig zu sehr aus gedrückt,
aber noch passend. Ich beschäftige mich zum allerersten mal mit uC´s
habe mich dennoch dazu entschlossen direkt mit ASM einzusteigen.
Halte nicht so viel von C oder Bascom ;)

Ok habe mir ein Testboard gebastelt mit einen ATMega8 dazu ein
2 x 20 Display HD44780, MAX232 für RS232 etc...

So jetzt habe ich eigendlich schon viele tolle Dinge gemacht
UART, Tasten entprellen etc...

Text auf Display funktioniert auch. Aber wie kann ich z.B.:

- Text auf dem Display ausgeben, das die 1. Zeile Fixiert ist
  (stehender Text) und die 2. Zeile z.b eine Art Laufschrift hat,
   bzw. einlaufenden Text. Bisher hab ich es immer nur hinbekommen
   das beide zeile sich verschoben habe. (Shift)

- Wie funktioniert das mit den Interrupts (habe schon einiges durch
  an dokus, nur so richtig verstehen tue ich das nicht.

- Ebenso was die Timer betrifft.

- Warum finde ich bei einigen Samples im Internet die Tags ".list"
bzw
  ".nolist" sowie .org etc... Welche sollte man auf jedenfall am
  anfang vom Source setzen?

Ich bedanke mich jetzt schonmal bei allen die sich die mühe machen, das
durchzulesen und zu Antworten. Ich möchte natürlich jetzt keine
kompletten Anleitungen (die gibt es ja schon zu genüge) aber der ein
oder Andere anschubser währe super. Wie z.b. mit der Laufschrift, das
gehört z.b. zu den Problemen die ich noch nicht gelöst habe.

Gruß Dennis

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laufschrift:
Mit den "On-Board-Mitteln" der Displays nicht möglich, so wie du
bereits erkannt hast verschiebt shift eben das ganze Display.
Für deine Funktion mußt du halt das Display dauernd neu beschreiben.
Interrupt:
Deine Programme laufen derzeit kontinuierlich durch. Je nach Anzahl der
Verzweigungen usw. braucht jeder Durchlauf unterschiedlich lang. Einen
Timerinterrupt könntest du jetzt zum Beispiel für eine exakte Zeitbasis
verwenden. Du stellt einen Timer auf z.B. 10ms Laufzeit und damit wird
alle 10ms ein Interrupt ausgelöst. Bei diesem wird dein "normales"
Program unterbrochen, die Interrupt-Routine ausgeführt (in diesem Fall
würdest du die Uhrzeit raufzählen) und danach gehts mit dem normalen
Program weiter. Eine weitere Anwendung sind Tastendrücke oder Daten
über die serielle. Dein Hauptporgram braucht nicht dauernd nachschauen
ob was anliegt (sog. pollen) sondern wird einfach durch den Int.
unterbrochen.
.list und .nolist geben an ob der dazwischen liegende text im *.lst
File ausgegeben wird. Es macht keinen Sinn bei jedem Ausdruck die
gesamten equ mitzudrucken, meist reicht das Hauptprogramm. Die .orgs
bestimmen die Speicherstelle, also zumindestens das .org 0 mit den
nachfolgenden reset und Intvektoren sollte angegeben werden.

grüsse leo9

Autor: Tobias A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ich hab das mit der Laufschrift mal schnell
geproggt ist nicht elegant, funzt aber.
(Codevision)
Ich hab ein 4x27 Zeichen Display
was ich aber hier als 2x40er benutze.
Kannst Dir den Code ja mal anschauen.
Gruß
  Tobi

zahl ist eine unsigend char variable


lcd_init(40);
while (1)
      {
      lcd_gotoxy(0,0);
      lcd_putsf("Hallo");
for (zahl=0; zahl<21; zahl++)
{lcd_gotoxy(zahl,1);
 lcd_putsf("Test");
 delay_ms(500);
 lcd_gotoxy(0,1);
 lcd_putsf("                          ");
 }
for (zahl=0; zahl<21; zahl++)
{lcd_gotoxy(21-zahl,1);
 lcd_putsf("Test");
 delay_ms(500);
 lcd_gotoxy(0,1);
 lcd_putsf("                          ");
 }

Hallo bleibt stehen und der Test läuft von
links nach rechts und von rechts nach links.

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.