-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: speichern auf internen EEprom dauert sehr lange

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272

    speichern auf internen EEprom dauert sehr lange

    Anzeige

    Hallo,

    habe mich mal an den internen EEprom gewagt und etwas gespeichert, funktioniert auch super und wenn ich mit pony prog das eeprom auslese steht auch an der von mir vorgegebenen adresse die daten.

    aber. das speichern dauert ca 30 sekunden. also ewig. auf meinem alten c51 prozie dauert das speichern keine sekunde.

    habe ich ein fehler im prgramm oder dauert das wirklich so lange. wenn ja, kann ich da einen speicherfortchritt programmieren. so wie bei windows wenn sich der balken da vergrößert.

    achja kurz zum programm. ich speicher die daten von variable a und lade sie auf variable N wieder raus. mehr nicht. ist nur zum üben für das speichern mit eeprom.

    achja, das das speichern so lange dauert liegt aber niccht an den wait 5. das soll nur dazu dienen zwischen den einzelnen schritten eine kleine pause zu machen.

    ach und trotz display off befehl wackelt das display und es entstehen dadrauf zeichen. nur kurz, aber trotzdem sichtbar.

    thx für eure hilfe

    arno

    Code:
    '*********************************
    '*       Atmega8 mit 8MHz        *
    '*                               *
    '*   EEprom lesen und speicher   *
    '*********************************
    
    $regfile "m8def.dat"
    $crystal = 8000000
    
    Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.4 , Db6 = Portd.5 , Db7 = Portd.6 , E = Portd.2 , Rs = Portd.0
    Config Lcdbus = 4
    Config Lcd = 16 * 2
    
    $eeprom
    
    Dim A As Byte , N As Byte , S As Byte
    S = 0
    Display Off
    A = 125
    Writeeeprom A , 100                                         'WRITEEEPROM Wert,Adresse
    Waitms 200
    Lcd A ; " gespeichert"
    Wait 5
    
    
    Readeeprom N , 100                                          'READEEPROM Wert,Adresse
    Display On
    Cls
    Lcd N ; "geladen"
    Wait 2
    
    
    Do
    Locate 2 , 1
    S = S + 1
    Waitms 400
    Lcd S ; " "
    
    Loop
    
    
    End                                                         'end program

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    In deinem Programm sehe ich nur Wait 5 für 5 Sekunden und natürlich den Waitms 200/400 für 0.2/0.4 Sekunden Pause.


    Ich habe gerade nen M8 hier.

    Wenn du willst kann ich dein Prog. ja mal laden und nachvollziehen.


    So wie ich es gerade lese speichest du ein Byte in Adresse 100
    Wartest 0.2 Sekunden
    Gibst Meldung auf LCD und wartest 5 Sekunden.

    Danach liest du den Wert wieder aussem EEprom,gibst ihn auf Display,wartest 2 Sekunden.

    Danach trittst du in die endlosschleife ein und gibst alle 0.4 Sekunden die Variable "S" in Zeile 2 des LCD aus.

    Wo genau hast du denn die 30 Sekunden verzögerung ?
    30 Sekunden bis die Meldung "Gespeichert" kommt oder woanders ?
    Gruß
    Ratber

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2005
    Beiträge
    175
    Du könntest es auch mal mit

    DIM A as ERAM BYTE

    versuchen

    Dann kannst Du Dir "Writeeprom" und "Readeeprom" eigentlich sparen.

    Normalerweise geht das Speichern rasend schnell...

    Grüße

    Torsten

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    Warum geht eigentlich dieser ERAM-Bafehl bei "Single" nicht?

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272
    jo, der braucht ca 30 sekunden eh er den wert auf dem EEprom gespeichert hat. weiß auch nicht warum.

    kann ja sein das derprozie so langsam ist.

    cu arno

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    So,habs mal probiert.

    Also ich hab da keinerlei verzögerungen ausser den Programierten und natürlich den Technisch gegebenen (EEProm braucht einige ms).


    Vieleicht hat der Compiler ja nen hau wech.

    Welche Version nutzt du denn ?
    Gruß
    Ratber

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Zitat Zitat von Rage_Empire
    Warum geht eigentlich dieser ERAM-Bafehl bei "Single" nicht?
    Code:
    Dim eSingle as ERAM Single
    
    Dim sSingle as Single
    
    sSingle = 2.3456
    
    eSingle = sSingle
    
    sSingle = eSingle
    wird anstandlos compiliert.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272
    mhm. eventuell hat mein AVR einen kleinen treffer weg.

    bei mir braucht der immer ewig.

    aber wenn der code stimmt bin ich ja zufrieden. da kann ich erstmal mein vorhaben weiterprogrammieren.

    ich benutzte die demo version von bascom. wollte ja eigentlich mit c programmieren (bisher nur assembler und c51 erfahrung). aber mit c habe ich nichts ausser ein paar lampen zum laufen bekommen.

    bei Bascom bin ich noch am überlegen. ein feines programm, aber bin ich damit so vielseitig wie mit nem c compiler???

    thx arno

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    bei Bascom bin ich noch am überlegen. ein feines programm, aber bin ich damit so vielseitig wie mit nem c compiler???
    Du schreibst doch, dass du Erfahrung in Assembler hast.
    In Bascom kannst du auch Assemblercode einbinden. Die Gefahr, dass du völlig in der Sackgasse landest, sollte dann doch eigentlich nicht bestehen.

    Von den vielen Funktionen die Bascom mitbringt, würde ich schon sagen, dass es recht vielseitig ist.
    Falls man mit C mehr machen kann, bringt mir das z.B. wenig, solange ich es nicht kann, weil ich kein C kann.

    Wenn du mit C nur ein paar Lämpchen ans leuchten bekommst und mit Bascom schon im EEprom rumschreibst, zahlt sich die Vielseitigkeit von C für dich offensichtlich auch nicht so sehr aus wie die "Einfachheit" von Bascom.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Zitat Zitat von Olle_Filzlaus
    mhm. eventuell hat mein AVR einen kleinen treffer weg.

    bei mir braucht der immer ewig.

    Is natürlich auch möglich.
    so nen Kandidat hat mich mal vor einiger Zeit nen ganzen abend aufgehalten.

    aber wenn der code stimmt bin ich ja zufrieden. da kann ich erstmal mein vorhaben weiterprogrammieren.
    Ja,wie gesagt hab ich nix auffälliges gefunden was die Funktion behindern sollte.

    ich benutzte die demo version von bascom. wollte ja eigentlich mit c programmieren (bisher nur assembler und c51 erfahrung). aber mit c habe ich nichts ausser ein paar lampen zum laufen bekommen.

    bei Bascom bin ich noch am überlegen. ein feines programm, aber bin ich damit so vielseitig wie mit nem c compiler???

    thx arno
    Also Assembler nutze ich nur wenn es nötig ist.
    (Wie Recycle schon sagte gehts auch Inline)

    Den meisten krempel bekommt man auch mit Bascom hin also warum sollte ich mir Weiße Haare wachsen lassen weil ich ewig für eine Funktion unterwegs bin ?


    C ist mit im übrigen zu Chaotisch.

    Eigentlich sollte ne Sprache strukturiert und einwenig intuitiv sein aber bei C und besonders bei C++ bekomm ich beim hinsehen schon Hirnsausen.



    Was die Vielseitigkeit angeht so kann ich da keine Erfahrungswerte liefern aber bis jetzt hab ich noch nix vermissen müssen
    Gruß
    Ratber

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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