- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Display schneller ansteuern? Wie?

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2007
    Beiträge
    21
    Anzeige

    E-Bike
    Versuche mal den Internal Osc. auf 8MHz über Fusebits einzustellen. Wenn du schneller sein willst, nehme einen Externen Oszillator mit 16MHz. Dein µProfessor schafft dann halt schneller. Oder versuchs mit Bus-system. das geht auch ganz gut. Und ich habe keine RW-Leitung.

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    ein schnellerer Quarz hilft da gar nix.
    Bascom berechnet die Zeiten ja aus der angegebenen Quarzfrequenz.
    10 ms sind in Bascom immer 10 ms, egal was für ein Quarz drin werkelt.

    Vorrausgesetzt, man lügt seinen Controller nicht an, wie ich weiter oben beschrieben habe.
    Wenn man allerdings bösartigerweise nur die halbe Quarzfrequenz angibt, halbieren sich auch alle Zeiten!
    Die Wartezeiten für's Display verkürzen sich so ebenfalls.
    Das Display wird also etw doppelt so schnell angesteuert.

    Blöd' ist halt, daß man alle anderen Wartezeiten im Programm umschreiben muß, damit das wieder passt.

    Gruß
    Christopher

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2007
    Beiträge
    21
    ja, das ist mir schon klar, dass in Bascom 10ms auch 10ms sind, aber die befehle werden schneller abgearbeitet, verstehst was ich mein? es gibt schon einen unterschied ob du jetzt mit 8MHz oder 16Mhz (wenn du einen externen oszillator nimmst) arbeitest. Die zyklendauer ist einfach kürzer. Die befehle werden 2 mal so schnell abgearbeitet.

    Das mit dem Übertakten ist zwar möglich, aber ob das gesund ist?!?

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    Bascom hat anscheinend recht lange Wartezeiten für die Displays drin, um sicherzustellen, daß das Display nicht beim schreiben noch busy ist.
    Diese Wartezeiten lassen sich mit genanntem Trick verkürzen.
    Alle von mir getesteten Displays liefen so noch einwandfrei, nur eben schneller.
    Klar wird der Programmablauf mit doppelter Frequenz auch schneller, aber die Wartezeiten für's Display bleiben anscheinend gleich, da die wohl durch die Angabe der Quarzfrequenz berechnet werden.


    Gruß
    Christopher

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    29.07.2006
    Beiträge
    15
    Hallo,

    habe es hinbekommen und kann jetzt meine Daten "manuell" per "Port-Umschaltungen" aufs Display senden, klappt wunderbar schnell (auch ohne Busyflag abfrage).

    Jetzt noch eine Frage, damits ganz top wird:

    Wie wird "manuell" das Display initialisiert? (Ohne Config LCD / initlcd) Gibt es da einen bestimmten Ablauf, der eingehalten werden muss?
    In den wikis steht dazu leider nichts ...

    Damit kann ich dann noch ein wenig mehr Speicher sparen.

    Hier mal ein Beispiel der "manuellen Übertagung:

    Code:
    $regfile = "m88def.dat"
    $crystal = 8000000
    
    Ddrb.3 = 1
    
    Portb.3 = 0
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portb.5 , Rs = Portb.4
    
    Initlcd
    
    Cursor Off Noblink
    
    Cls
    
    Locate 1 , 1
    
    
    Hauptprogramm:
    
    
    Do
    
    Locate 1 , 1
    
    Lcd "Hallo"
    
    Wait 2
    
    '------------ Zahl 3-------------------------
    
    Portb.5 = 1                                                 'E auf high
    
    Portb.4 = 1                                                 'RS auf high, um Daten zu senden
    
    Portc = &B00001000                                          'C2-C5 übertragen Bits 4-7
    
    Portb.5 = 0                                                 'E auf low um Daten zu lesen
    
    Portb.5 = 1                                                 'E wieder high
    
    Portb.5 = 1                                                 'E wieder high
    
    Portc = &B00011000                                          'C2-C5 übertragen Bits 0-3
    
    Portb.5 = 0                                                 'auf low um Daten zu lesen
    
    Portb.5 = 1                                                 'E wieder high
    
    
    Wait 2
    
    
    '------Clear-----------------
    
    Portb.5 = 1                                                 'E auf high
    
    Portb.4 = 0                                                 'RS auf low, um Befehl zu senden
    
    Portc = &B00000000                                          'C2-C5 übertragen Bits 4-7
    Portb.5 = 0                                                 'E auf low um Daten zu lesen
    
    Portb.5 = 1                                                 'E wieder high
    
    Portc = &B00000100                                          'C2-C5 übertragen Bits 0-3 (Bit0 ist 1 für Clear Display)
    
    Portb.5 = 0                                                 'auf low um Daten zu lesen
    
    Portb.5 = 1                                                 'E wieder high
    
    Wait 2
    
    Loop
    
    End
    Grüße

    Robert

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

12V Akku bauen