Hufiger Einsatz von SerPrint(); fhrt zu groen Problemen

Thema: Hufiger Einsatz von SerPrint(); fhrt zu groen Problemen

  1. ElTransistor:
    hi sebastian, du hast mir sozusagen zu 50% geholfen

    denn wenn ich "zeichen" dann ausgebe kommt im HT folgendes an:

    Code: [Ansicht]
     Flash! O
     
  2. izaseba:
    Hallo ElTransistor,

    Hmm,
    ich sehe gerade, da es Probleme geben knnte, weil ich die Senderoutine einfach aus irgendeinem meiner 'nicht Asuro' Programme rauskopiert habe, und da gibt es leider kleine diferenzen.

    Versuch es mal damit:
    Code: [Ansicht]
    void push_flash(const char *string){
    char zeichen;
      while((zeichen = pgm_read_byte(string))) {
        Uart_Putc(zeichen);
        string++;
        }
    }
    Ich hoffe damit erreichst Du Dein Vorhaben.

    Gru Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald
     
  3. ElTransistor:
    hi..

    ich hab das gestern nacht nochmal versucht, und zuerst hat es wunderbar geklappt! aber als ich dann die funktion in mein programm bernommen habe hat er wieder nur zeichen ausgespuck..und dann hab ichs nochmal von dir kopiert und nun geht es auch mit deinem beispiel nicht

    Code: [Ansicht]
    #include "asuro.h"
    #include "avr/io.h"
    #include "avr/pgmspace.h"
    #include "string.h"
    
    void push_flash(const char *string){
    char zeichen;
      while((zeichen = pgm_read_byte(string))) {
        UartPutc(zeichen);
        string++;
        }
    } 
    
    int main(void)  {
        Init();
        push_flash("lskjdhflkajshdlfkjhslkdjfhlkjhlkj");
        return 0;
    }

    liefert
    Code: [Ansicht]
    ߓ$!#ߑϕЀ߀$]
    ich wei nur nich warum das einmal ging und dann wieder nicht..
     
  4. izaseba:
    Hallo ElTransistor,

    2 Probleme:

    1. ich habe geschrieben
    Code: [Ansicht]
    push_flash(PSTR("Hallo, ich bin im Flash!\r\n"));
    Du aber
    Code: [Ansicht]
    push_flash("lskjdhflkajshdlfkjhslkdjfhlkjhlkj");
    Na Fehler gefunden ?

    2.
    Ich vermisse eine Endlosschleife in deinem Programm, das ist nicht gut.

    Gru Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald
     
  5. ElTransistor:
    AH du hast recht! ja das ist der nachteil wenn man nachts noch prgrammieren will

    ich glaube das war es, man ich hasse es immer diese kleinigkeiten zu bersehen

    thx!
     
  6. Avatar von damaltor

    damaltor:
    sowas ist in assmbler ja recht elegant zu lsen... aber da sieht man ganz gut die grenzen dec compilers :P
    Read... or die.
    ff.mud.de:7600
    Bild hier  
     
  7. MartinFunk:
    Hi,
    Steht nicht am ende eines Strings eine Dezimal "0"?

    MfG Maritn
     
  8. izaseba:
    Hallo Damaltor ,

    sowas ist in assmbler ja recht elegant zu lsen... aber da sieht man ganz gut die grenzen dec compilers
    Versteh ich nicht so recht, was Du meinst, warum erreicht der Kompiler hier seine Grenzen ?

    Meinst Du, weil man nicht so einfach aus dem Flash lesen kann?
    Wenn ja liegt das nicht am Kompiler, sondern an der AVR Architektur wrde ich mal sagen.
    Trotzdem haben die avr-gcc Macher die Problematik gut gelst, man mu es nur wissen !

    @Martin Funk ,
    Du hast recht, ich wei aber nicht recht, worauf Du hinauswillst.

    Gru Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald
     
  9. stochri:
    sag mal, izaseba, warum nennst Du Deine Routine eigentlich "push_flash". Um etwas zu holen, nimmt man doch normalerweis "pop" statt push
     
  10. izaseba:
    Hi stochri,
    nun ja, kommt drauf an, von welcher Seite man das ganze sieht

    Hier sehe ich das von der UART Seite...

    man knnte auch getfromflashandputinuart sagen, oder wei was ich.
    die Routne pushed ja was in UART (poped aber aus den flash )

    Ehrlichgesagt habe ich mir keine Gedanken darber gemacht \/
    Schlag was sinvolles vor, dann benenne ich sie um

    Gru Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald