c - 使用 MAX7219 启用 SPI 并创建数组

标签 c avr avr-gcc atmega

#define F_CPU 16000000UL          // AVRJazz28PIN Board Used 16MHz
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#define SPI_PORT PORTB
#define SPI_DDR  DDRB
#define SPI_CS   PB2


void SPI_Write(uint8_t addr, uint8_t dataout)
{        
  // Enable CS Pin
  SPI_PORT &= ~(1<<SPI_CS);

  // Start Address transmission (MOSI)    
  SPDR = addr;

  // Wait for transmission complete
  while(!(SPSR & (1<<SPIF)));    

  // Start Data transmission (MOSI)
  SPDR = dataout;

  // Wait for transmission complete
  while(!(SPSR & (1<<SPIF)));

  // Disable CS Pin
  SPI_PORT |= (1<<SPI_CS);    
}
 char digit[10] = {0,0,0,0,0,0,0,0,0,0};
digit[0] = 0x7E
digit[1] = 0x30
digit[2] = 0x6D
digit[3] = 0x79
digit[4] = 0x33
digit[5] = 0x5B
digit[6] = 0x5F
digit[7] = 0x70
digit[8] = 0x7F
digit[9] = 0x7B

void main()
{
char ch;
char digits_disp[10] = {0,0,0,0,0,0,0,0,0,0};
ch = digits_disp[3];
}

这是一个非常基本的代码。我正在使用 MAX 7219 显示驱动器设计时钟。在详细介绍之前,我想获得一个基本代码,我将初始化 SPI,然后使用 MAX7219 的数据表声明每个字符的值,然后编写一个短数组来显示随机数。但这段代码无法正常工作,并且一直显示: ../exp3.c:45:错误:“digits_disp”的类型冲突 ../exp3.c:44:错误:“digits_disp”的先前定义位于此处

你能帮我解决我做错了什么吗?你能告诉我如何初始化我的数组,以便我可以在模拟中显示字符“3”吗?换句话说,我需要添加哪行代码才能显示数组中的字符? 谢谢。

最佳答案

我无法真正理解您的代码,但这部分代码在语法上无效:

char digit[10] = {0,0,0,0,0,0,0,0,0,0};
digit[0] = 0x7E
digit[1] = 0x30
digit[2] = 0x6D
digit[3] = 0x79
digit[4] = 0x33
digit[5] = 0x5B
digit[6] = 0x5F
digit[7] = 0x70
digit[8] = 0x7F
digit[9] = 0x7B

您可能想这样做:

char digit[10] = { 0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B, 0x5F, 0x70, 0x7F, 0x7B };

关于c - 使用 MAX7219 启用 SPI 并创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27807725/

相关文章:

c - 仔细检查缓冲区的大小

C99条件返回值

c - 海湾合作委员会-错误 : dereferencing pointer to incomplete type

C++ 静态数组初始化 : does inline initialization reserve space?

c - 最佳实践 : declaring global arrays of fixed length automatically

c - c 中对指针的 undefined reference

c 预处理器宏在扩展后连接参数

c - AVR GCC - 使用静态库 - undefined reference 错误

assembly - 为什么 avr-gcc 将 "push r1"指令添加到函数的开头?

float 和字节数组问题的 C++ union