jenesuispasgoth icon

nios2 sept segments

jenesuispasgoth | PRO | 03/20/20 08:45:12 AM UTC | 0 ⭐ | 300 👁️ | Never ⏰ | []
C |

1.46 KB

|

None

|

0 👍

/

0 👎

/* Continue 0-ff counting loop. */
 
    unsigned unite[10] = {
            0xf41fffff /* 0 */, 0xff5fffff /* 1 */, 0xf19fffff /* 2 */, 0xf91fffff /* 3 */, 0xfa5fffff /* 4 */,
            0xf83fffff /* 5 */, 0xf03fffff /* 6 */, 0xff1fffff /* 7 */, 0xf01fffff /* 8 */, 0xf81fffff /* 9 */
    };
    unsigned dizaine[10] = {
            0xffe0bfff, 0xffebffff, 0xffe63fff, 0xffe27fff, 0xffe97fff,
            0xfff07fff, 0xfff03fff, 0xffe3ffff, 0xffe03fff, 0xffe07fff
    };
    unsigned centaine[10] = {
            0xffffc17f, 0xffffd7ff, 0xffffcc7f, 0xffffc4ff, 0xffffd2ff,
            0xffffe0ff, 0xffffe07f, 0xffffc7ff, 0xffffc07f, 0xffffc0ff
    };
    unsigned millier[10] = {
            0xffffff82, 0xffffffaf, 0x0fffff98, 0xffffff89, 0xffffffa5,
            0xffffffc1, 0xffffffc0, 0xffffff8f, 0xffffff80, 0xffffff81
    };
    
 
 
    while( 1 ) 
    {
        unsigned value = 0x7FFFFFFF; // 28 bits == AFF3 | AFF2 | AFF1 | AFF0 
        value = 0x0;
        usleep(1000000);
        
        /*
         * 0x7 = 0111 ; 0xC = 1100 => 0100
         * 0xB = 1011 ; 0xC = 1100 => 1000
         * 0x1 = 0001 ; 0xE = 1110 => 0000
         *   0xf41fffff
         * & 0xffe0bfff
         * & 0xffffc17f
         * & 0xffffffc1
         * ------------
         *   0xf4008141
         */
        int i;
        for (i = 0; i < 10; ++i)
        {
            value = unite[i] & dizaine[i] & centaine[i] & millier[i];
            IOWR_ALTERA_AVALON_PIO_DATA(AFFICHEUR_SEGMENT_BASE, value);
            usleep(500000);
        }

Comments