找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2977|回復(fù): 5
收起左側(cè)

單片機(jī)模塊化編程錯(cuò)誤 C141,求糾正

[復(fù)制鏈接]
ID:168255 發(fā)表于 2018-1-16 23:28 | 顯示全部樓層 |閱讀模式
DS12C887.h文件
  1. //DS12C887.h
  2. #ifndef _DS12C887_H_
  3. #define _DS12C887_H_

  4. extern void C887_write(uint8 add,uint8 datum); //錯(cuò)誤在這行
  5. extern uint8 C887_read(uint8 add); //錯(cuò)誤在這行
  6. extern void C887_init();
  7. extern void GetTime();

  8. #endif
復(fù)制代碼

DS12C887.c文件:
  1. //DS12C887.c
  2. #include"STC89C52RC.h"
  3. #include"MacroAndConst.h"
  4. #include"DS12C887.h"

  5. void C887_write(uint8 add,uint8 datum);
  6. uint8 C887_read(uint8 add);
  7. void C887_init();
  8. void GetTime();

  9. void C887_write(uint8 add,uint8 datum)
  10. {
  11.         C887CS=0;
  12.         C887AS=1;
  13.         C887DS=1;
  14.         C887RW=1;
  15.         C887BUS=add;
  16.         C887AS=0;
  17.         C887RW=0;
  18.         C887BUS=datum;
  19.         C887RW=1;
  20.         C887AS=1;
  21.         C887CS=1;
  22.         C887BUS=0xFF;
  23. }

  24. uint8 C887_read(uint8 add)
  25. {
  26.         uint8 datum;
  27.         C887AS=1;
  28.         C887DS=1;
  29.         C887RW=1;
  30.         C887CS=0;
  31.         C887BUS=add;
  32.         C887AS=0;
  33.         C887DS=0;
  34.         C887BUS=0xff;
  35.         datum=C887BUS;
  36.         C887DS=1;
  37.         C887AS=1;
  38.         C887CS=1;
  39.         C887BUS=0xFF;
  40.         return datum;
  41. }

  42. void C887_init()
  43. {
  44.         C887_write(0x0A,0x20);                //打開振蕩器
  45.         C887_write(0x0B,0x22);                //啟動(dòng)鬧鐘中斷,二進(jìn)制格式,24小時(shí)制
  46. }

  47. void GetTime()
  48. {
  49.         year=C887_read(0x09);
  50.         month=C887_read(0x08);
  51.         day=C887_read(0x07);
  52.         week=C887_read(0x06);
  53.         hour=C887_read(0x04);
  54.         minute=C887_read(0x02);
  55.         second=C887_read(0x00);
  56. }
復(fù)制代碼


KEIL編譯,報(bào)錯(cuò):
compiling main.c...
CODE\DS12C887.H(5): error C141: syntax error near 'add', expected ')'
CODE\DS12C887.H(6): error C129: missing ';' before 'C887_read'

但凡有#include"DS12C887.h"的文件均報(bào)上述的錯(cuò)誤。實(shí)在不知道哪里錯(cuò)了,求糾正。

評(píng)分

參與人數(shù) 1黑幣 +3 收起 理由
hahahahh + 3 淡定

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:267377 發(fā)表于 2018-1-17 01:51 | 顯示全部樓層
#ifndef _DS12C887_H_
#define _DS12C887_H_

#define uint8 int

extern void C887_write(uint8 add,uint8 datum);
extern uint8 C887_read(uint8 add);
extern void C887_init();
extern void GetTime();

#endif

評(píng)分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:276524 發(fā)表于 2018-1-17 10:14 來(lái)自觸屏版 | 顯示全部樓層
語(yǔ)法錯(cuò)誤,uint8始不是沒(méi)有宏定義,#define uint8   unsignet  int
回復(fù)

使用道具 舉報(bào)

ID:168255 發(fā)表于 2018-1-17 12:12 來(lái)自觸屏版 | 顯示全部樓層
滄海月明 發(fā)表于 2018-1-17 10:14
語(yǔ)法錯(cuò)誤,uint8始不是沒(méi)有宏定義,#define uint8   unsignet  int

有的,在另一個(gè)頭文件中,而且所有源文件都include了該頭文件
回復(fù)

使用道具 舉報(bào)

ID:276524 發(fā)表于 2018-1-18 21:24 來(lái)自觸屏版 | 顯示全部樓層
DavidTesla 發(fā)表于 2018-1-17 12:12
有的,在另一個(gè)頭文件中,而且所有源文件都include了該頭文件

我試過(guò)了,在"DS12C887.h"中寫入#define unit8 unsigned  int;你的程序就不會(huì)有那兩個(gè)錯(cuò)誤了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表