Hirdetés

Új hozzászólás Aktív témák

  • zka67

    őstag

    válasz dave0825 #1267 üzenetére

    Szia, parancsolj:

    const unsigned char minutes[60][6] = {
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // perc 0
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // perc 1
    ...
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} // perc 59

    };

    const unsigned char hours[12][6] = {
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // ora 0
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // ora 1
    ...
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} // ora 11

    };

    const unsigned char temperatures[17][6] = {
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // fok 15
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}, // fok 16
    ...
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} // fok 30
    {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000} // ures

    };

    void checkMinute() {
    unsigned char second,minute,i;
    second=Clock.getSecond();
    minute=Clock.getMinute();
    for (i=0; i<6; i++) data[i] = minutes[minute][i];
    showpattern();
    }

    void checkHour() {
    unsigned char hour;
    hour=Clock.getHour(h12, PM);
    for (i=0; i<6; i++) data[i] = hours[hour % 12][i];
    showpattern();
    }

    void checkTemperature() {
    unsigned char temperature;
    temperature=Clock.getTemperature() - 15;
    if (temperature >= 16) temperature = 16;
    for (i=0; i<6; i++) data[i] = temperatures[temperature][i];
    showpattern();
    }

    vagy szerintem így sokkal szebb, csak másképp kell meghívnod (ebben az esetben természetesen semmi szükség a fenti rutinokra, checkMinutes stb...):

    void checkValue(const unsigned char *table) {
    unsigned char i;
    for (i=0; i<6; i++) data[i] = *table++;
    showpattern();
    }

    checkValue(&minutes[Clock.getSecond()][0]);
    checkValue(&hours[Clock.getHour() % 12][0]);
    checkValue(&temperatures[Clock.getTemperature()][0]);

    Remélem a fordító elfogadja a programot, ha meg nem, majd még igazítunk rajta :)

    Szerk: mégiscsak megírtam... :D

    [ Szerkesztve ]

Új hozzászólás Aktív témák