标题: 单片机数组模块化问题 [打印本页]

作者: YZYNULL    时间: 2021-5-21 20:38
标题: 单片机数组模块化问题
想把数组单独放到一个文件但是怎么编译都出错,主要是我现在不知道怎么定义外部数组
all.H文件
#include <STC8.H>
#include <intrins.H>
#include "Chinese.H"
typedef unsigned char u8;
typedef unsigned short u16;

main文件
#include "all.H"
void main
{
  u8 i,j;
   while(1)
   {
      P1=Chinese[ i][j]      //假如这么写[ i]
   }
}

Chinese.c文件

#include "all.H"
u8 code Chinese[3][32]=
{{0x00,0x00,0x3F,0xF0,0x20,0x20,0x20,0x20,0x3F,0xF0,0x00,0x01,0x00,0x06,0x3F,0xF8,0x22,0x00,0x22,0x00,0x22,0x00,0x43,0xFF,0xC2,0x00,0x42,0x00,0x02,0x00,0x00,0x00},/* (16 X 16 ) */{0x02,0x08,0x02,0x30,0x02,0x02,0x02,0x01,0xFE,0xFE,0x22,0x00,0x22,0x20,0x02,0x19,0x20,0x02,0x3E,0x04,0x21,0xC8,0x20,0x30,0x21,0xCC,0x3E,0x02,0x00,0x01,0x00,0x00},/* (16 X 16 ) */{0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00},/* (16 X 16 ) *




Chinese.H 文件
#ifndef __Chinese_H_#define __Chinese_H_extern u8 code Chinese[3][32]#endif

作者: wulin    时间: 2021-5-22 08:40
  1. //main.c
  2. #include "all.H"

  3. void main()
  4. {
  5.   u8 i,j;
  6.    while(1)
  7.    {
  8.       P1=Chinese[i][j];      //假如这么写[ i]
  9.    }
  10. }
复制代码

  1. //all.H文件
  2. #ifndef _ALL_H_
  3. #define _ALL_H_
  4.         #include <STC8.H>
  5.         #include <intrins.H>
  6.         #include "Chinese.H"
  7.         #define u8 unsigned char
  8.         #define u16 unsigned int

  9. #endif
复制代码

  1. //Chinese.c
  2. #include "all.H"

  3. u8 code Chinese[3][32]={
  4. {0x00,0x00,0x3F,0xF0,0x20,0x20,0x20,0x20,0x3F,0xF0,0x00,0x01,0x00,0x06,0x3F,0xF8,
  5. 0x22,0x00,0x22,0x00,0x22,0x00,0x43,0xFF,0xC2,0x00,0x42,0x00,0x02,0x00,0x00,0x00},/* (16 X 16 ) */
  6. {0x02,0x08,0x02,0x30,0x02,0x02,0x02,0x01,0xFE,0xFE,0x22,0x00,0x22,0x20,0x02,0x19,
  7. 0x20,0x02,0x3E,0x04,0x21,0xC8,0x20,0x30,0x21,0xCC,0x3E,0x02,0x00,0x01,0x00,0x00},/* (16 X 16 ) */
  8. {0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
  9. 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00},/* (16 X 16 ) */
  10. };
复制代码

  1. //Chinese.H 文件
  2. #ifndef __Chinese_H_
  3. #define __Chinese_H_

  4.         extern unsigned char code Chinese[3][32];

  5. #endif
复制代码

作者: YZYNULL    时间: 2021-5-22 11:23
wulin 发表于 2021-5-22 08:40

谢谢大佬,已经过编译了
作者: 啊哈1哈哈哈哈哈    时间: 2021-5-22 11:36
数组定义问题




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1