Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[AVR][C][RTC-PCF8583] dni tygodnia, deklaracja tablicy znaków

02 Kwi 2013 23:58 2589 7
  • Poziom 23  
    Witam,
    Szukam i nie mogę znaleźć. Chciałbym zadeklarować tablicę, która byłaby częścią struktury:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    więc raczej nie może być z parametrem PROGMEM, ponieważ sama struktura będzie zmienną. Tablica miałaby 7 wierszy (0-6) typu char:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    dostęp do poszczególnych wierszy odbywałby się poprzez licznik wierszy 0-6 - bo takie wartości są bezpośrednio w rejestrze PCF. Czy da się zadeklarować tablicę dwuwymiarową, aby numery wierszy były typu int (lub uint8_t) i każdy z nich zawierał zmienną typu tablica znaków (char)?
  • Pomocny post
    Poziom 20  
    Zadeklaruj stałą tablicę w PROGMEM, a ze struktury odnoś się przez wskaźnik.
  • Poziom 23  
    a jak zadeklarować tablicę o różnych typach zmiennych? (numery wierszy- int, wiersze - tablice char)
  • Poziom 20  
    Przesadzone! Wystarczy Ci char[][]
  • Poziom 39  
    Raphaw napisał:
    Przesadzone!
    Nie zgadzam się. Po to wymyślono struktury, aby je stosować.
    Jeśli ktoś chce - może wszystko zapamiętywać jako tablicę char-ów (bajtów) - wszak tak jest zorganizowana pamieć 8-bitowców, prawda? Tylko po co sobie utrudniać życie?
    Raphaw napisał:
    Zadeklaruj stałą tablicę w PROGMEM, a ze struktury odnoś się przez wskaźnik.
    Kolega słusznie zauważył. Tablicę dni tygodnia (wskaźników do char-ów zapisanych w PROGMEM) wrzuć również do PROGMEM. W strukturze TTime wstaw sobie indeks w tej tablicy i "voila".
  • Pomocny post
    Specjalista - Mikrokontrolery
    Po co komplikować?

    Jedyne, co jest potrzebne, to:
    const char PROGMEM dni_tygodnia[7][4] = {
    "pon", "wto", "sro", czw", "pia", "sob", "nie"
    };

    W strukturze zmiennej jest/będzie trzymany numer dnia tygodnia, który może być użyta jako indeks do tej tablicy. Samych nazw dni tygodnia nei ma sensu trzymać jako zmiennych.
  • Poziom 23  
    kombinowałem z tablicą struktur, ale kompilacja się wykłada na procedurze wyświetlania z pamięci Flash na LCD , która oczekuje char*, a dostaje strukturę TDzień_tyg (pewnie coś namieszałem z wskaźnikami), więc skorzystałem z pomysłu Raphaw i BlueDraco - rzeczywiście, jakoś to prościej wygląda ;-)
    Dzięki wszystkim.