- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 21

Thema: Drucker mit AVR ansteuern?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.06.2004
    Beiträge
    162
    Ja Servus!

    Hab grad die Elektronik fertig gebastelt, Billig-Programmer schnell gebaut, Software war ja schon fertig.

    Jetzt schnell Datei rüberschieben und testen - und? Blöd... (S+c+h+e+i+s+s+e wurde zensiert...)

    Probleme:
    1. Hab ihm programmiert, dass er beim einschalten beide LEDs für 1 sek. anmacht, so als funktionstest der LEDs sozusagen. Aber die LEDs leuchten so locker 3-4 sek. Timing-Problem. Fuses? Externer Quarz mit 2 Kondis sind dran.

    2. Ich starte, nachdem der DST "gebootet" hat, das Programm 1. OK, Status-LED Grün geht aus, dafür die Rote an. Passt. Aber kommt was am Drucker raus? Nein.

    Hier mal die Software:
    Code:
    $regfile = "m8def.dat"
    $crystal = 16000000
    
    Ddrb = &B00000000                                           'Port B komplett als Eingang
    Ddrc = &B00001111                                           'Am Port C PC0 bis PC3 Ausgang, Rest Eingang
    Ddrd = &B11111111                                           'Port D komplett als Ausgang
    
    Portb = &B00011110                                          'Pullup für PB1 bis PB4 aktivieren (Taster)
    Portc = &B00001111                                          'Beim starten auf 0 setzen
    Portd = &B00000000                                          'Beim starten auf 0 setzen
    
    Portc.0 = 0                                                 'LED Grün an
    Portc.1 = 0                                                 'LED Rot an
    
    Wait 1                                                      'Test, ob beide LEDs funktionieren
    
    Portc.1 = 1                                                 'LED Rot aus
    
    
    Do
    If Pinb.1 = 0 Then                                          'Taster 1 gedrückt
       Gosub Dst1
    End If
    If Pinb.2 = 0 Then                                          'Taster 2 gedrückt
       Gosub Dst2
    End If
    If Pinb.3 = 0 Then                                          'Taster 3 gedrückt
       Gosub Dst3
    End If
    If Pinb.4 = 0 Then                                          'Taster 4 gedrückt
       Gosub Dst4
    End If
    Loop
    
    
    Dst1:                                                       'Programm 1: Statusseite 1 und 2
    Portc.0 = 1                                                 'Grüne LED aus
    Portc.1 = 0                                                 'Rote LED an
    Gosub Drucker_init
    Portd = 33                                                  '!
    Gosub Drucker_senden
    Portd = 82                                                  'R
    Gosub Drucker_senden
    Portd = 33                                                  '!
    Gosub Drucker_senden
    Portd = 32                                                  'Leerzeichen
    Gosub Drucker_senden
    Portd = 83                                                  'S
    Gosub Drucker_senden
    Portd = 84                                                  'T
    Gosub Drucker_senden
    Portd = 65                                                  'A
    Gosub Drucker_senden
    Portd = 84                                                  'T
    Gosub Drucker_senden
    Portd = 59                                                  ';
    Gosub Drucker_senden
    Portd = 83                                                  'S
    Gosub Drucker_senden
    Portd = 84                                                  'T
    Gosub Drucker_senden
    Portd = 65                                                  'A
    Gosub Drucker_senden
    Portd = 84                                                  'T
    Gosub Drucker_senden
    Portd = 49                                                  '1
    Gosub Drucker_senden
    Portd = 59                                                  ';
    Gosub Drucker_senden
    Portd = 69                                                  'E
    Gosub Drucker_senden
    Portd = 88                                                  'X
    Gosub Drucker_senden
    Portd = 73                                                  'I
    Gosub Drucker_senden
    Portd = 84                                                  'T
    Gosub Drucker_senden
    Portd = 59                                                  ';
    Gosub Drucker_senden
    Portd = 12                                                  'Form Feed
    Gosub Drucker_senden
    Portc.0 = 0                                                 'Grüne LED an
    Portc.1 = 1                                                 'Rote LED aus
    Return
    
    
    Dst2:
    Return
    
    
    Dst3:
    Return
    
    
    Dst4:
    Return
    
    
    Drucker_senden:
    Portc.3 = 1                                                 'Stobe aktivieren
    Waitus 10                                                   '10 mikrosekunden warten
    Portc.3 = 0                                                 'Daten übernommen
    Return
    
    
    Drucker_init:
    Portc.2 = 0                                                 'Init-Signal auf Low zum initialisieren
    Waitus 50                                                   '50 mikrosekunden warten
    Portc.2 = 1                                                 'Drucker ist initialisiert
    Return
    
    
    End
    Im Anhang gibts auch nochmal das Programm zum downloaden.

    BITTE HELFT MIR ! ! !

    mfg,
    cap.


    EDIT:
    Mir ist grad aufgefallen, dass ich zwar BUSY angeschlossen habe, aber ich irgendwie in meiner programmierung nicht auftaucht. Kann das ein/das Problem sein?

    Wegen Fuses setzen hab ich bissl Angst, davor mir den uC zu schießen. Ich benutz zum "brennen" PonyProg. Bitte helft mit da, das mein erstes richtiges AVR Projekt ist. Hatte bis jetzt noch keine wirklichen Erfolge mitm AVR, will das endlich mal ein AVR-Projekt klappt!

    EDIT2:
    Wie sieht des eigentlich aus wegen dem Strobe-Signal? High oder Low? In meiner Programmierung gebe ich auf das Strobe-Signal 10 usek. ein High-Signal, nach dem ersten Byte - usw... Kann es auch daran liegen?
    Angehängte Dateien Angehängte Dateien

Berechtigungen

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

Solar Speicher und Akkus Tests