第9篇:Linux程序访问控制FPGA端HEX<二>
Q:如何写.c代码访问使FPGA端的七段数码管静态显示呢?
A:基本原理:定义一组字符char seg7[16],对应数码管显示十六进制数0~F时的逻辑,在DE1-SoC_Computer系统中如0b00111111即表示在数码管上显示十六进制数0, 将(00111111)B存储到与数码管并行端口对应的Data地址中即可使数码管显示0。
将数据写入Data寄存器时的赋值方式,如将(00111111)B写入HEX5_HEX4并行端口寄存器使HEX5显示0,需将其左移8位后再赋值: *HEX5_HEX4_ptr = seg7[0] << 8。若使HEX4也同时显示0,需采取先按位或后再赋值的方式: *HEX5_HEX4_ptr |= seg7[1],而同时写数据到HEX3_HEX0并行端口时,还要再注意左移的位数,如HEX3应左移24位。
本次实验是在DE1-SoC开发板的6个七段数码管上依次显示十六进制数0、1、2、A、b、C。 在DE1-SoC-UP Linux系统中编译并运行程序后,即可观察到实验结果。