- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 18

Thema: Feste Größe ändert sich beim Programmablauf (="Suchspiel" Memoryüberschneidung)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    54
    Beiträge
    502
    Hallo Joe,

    das mit dem Progmem ist kinderleicht und bewahrt einen wirklich vor bösen Überraschungen. Ich hab hier mal ein kleines Beispiel, wie ich das implementiert habe um Statusmeldungen auszugeben.
    Code:
    int main(void)
    {
    unsigned char actual_page = 0;
    char main_text[20];
    ...
    get_str_from_flash(6, main_text);//"Menue 4"
    tp_write_statusbar(&tp, main_text);
    ...
    Die flash_mem.c:
    Code:
    #include <stdint.h>
    #include <avr/pgmspace.h>
    #include <string.h>
    
    #include "main.h"
    #include "flash_mem.h"
    
    const char str1[] PROGMEM = "INFO allgemein";
    const char str2[] PROGMEM = "              ";//14 Leerzeichen
    const char str3[] PROGMEM = "Menue 1";
    const char str4[] PROGMEM = "Menue 2";
    const char str5[] PROGMEM = "Menue 3";
    const char str6[] PROGMEM = "Menue 4";
    const char str7[] PROGMEM = "Menue 5";
    ...
    
    const char *strarray1[] PROGMEM = {
        str1,
        str2,
        str3,
        str4,
        str5,
        str6,
        str7,
        str8,
        str9,
        str10,
        str11,
        str12,
    ...
    };
    
    void get_str_from_flash(uint16_t strnum, char* str)
    {
    if(strnum>0)strcpy_P(str, (const char*)(pgm_read_word(&(strarray1[strnum-1]))));
    else strcpy(str, "Invalid number!");
    }
    und in der flash_mem.h steht nur:
    Code:
    #ifndef _MEM_FLASH_H_
    #define _MEM_FLASH_H_
    
    extern void get_str_from_flash(uint16_t strnum, char* str);
    
    #endif  /* _MEM_FLASH_H_ */
    Geändert von sast (21.01.2014 um 14:38 Uhr)

    雅思特史特芬
    开发及研究

Ähnliche Themen

  1. per TV-remote ein "move" programmablauf auslösen..
    Von carlitoco im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 01.04.2008, 20:59
  2. Stecker in "Computer-Größe"
    Von danst im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 13.01.2007, 15:19
  3. "Leser stellen sich vor" - Was haltet ihr davon?
    Von Florian im Forum Umfragen
    Antworten: 31
    Letzter Beitrag: 17.03.2006, 16:52
  4. IO-Pins lassen sich nicht richtig mit "bsf"/"
    Von keiang im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 21.07.2005, 19:12
  5. AT90S2313 - RX-Interupt - Der "hängt sich auf"
    Von Gottfreak im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 13.05.2004, 23:32

Berechtigungen

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

Labornetzteil AliExpress