C-如何将BASYS MX3计时器从十六进制更改为DEC



我正在使用Basys MX3,并使用SSDDEMO,该SSDDEMO在十六进制中充当计时器,我试图将计时器更改为十进制,没有成功。.我该怎么做:)?非常感谢,这是SSDDEMO的链接:

https://github.com/digilent/basys-mx3-library/blob/master/demos/demos/ssddemo.x/ssd.c

在给定库中,SSD_WriteDigitsGrouped()显示val参数的四个十六进制数字。首先将整数转换为二进制编码的十进制十进制(bcd)格式,其中每个十六进制表示代表十进制数字值0至9,您可以显示小数。

这可以使用用于转换的SSD_WriteDigitsGrouped()的包装器轻松完成。实现以下功能,并将其代替SSD_WriteDigitsGrouped()

void SSD_WriteDigitsGroupedBCD( unsigned int val, unsigned char dp )
{
    unsigned bcd = 0 ;
    int shift = 0 ;
    while( val > 0) 
    {
        bcd |= (val % 10) << (shift << 2) ;
        shift++ ;
        val /= 10;
    }
    SSD_WriteDigitsGrouped( bcd, dp ) ;
}

最新更新