论坛风格切换切换到宽版
  • 7330阅读
  • 33回复

被搞定了! PIC16F72 单相交流电机VF驱动 [复制链接]

上一主题 下一主题
离线szcharle
 
发帖
13335
只看楼主 倒序阅读 0楼 发表于: 2008-07-04
是在microchip网站上下载的an967(用pic16f72驱动单相交流电机)的原代码
压缩包里面包括一个asm 和一个inc文件
我用mplab 8.1 (网站上下的次新稳定版) 编译
报错,内容如下:
----------------------------------------------------------------------
release build of project `e:\pic test\1\1.mcp' started.
fri jul 04 1128 2008
----------------------------------------------------------------------
make: the target "e:\pic test\1\mc_16f72.o" is out of date.
executing: "c:\program files\microchip\mpasm suite\mpasmwin.exe" /q /p16f72 "mc_16f72.asm" /l"mc_16f72.lst" /e"mc_16f72.err" /x"mc_16f72.xrf" /ainhx8m
error[149]   e:\pic test\1\mc_16f72.asm 76 : directive only allowed when generating an object file
error[149]   e:\pic test\1\mc_16f72.asm 79 : directive only allowed when generating an object file
error[149]   e:\pic test\1\mc_16f72.asm 83 : directive only allowed when generating an object file
message[302] e:\pic test\1\mc_16f72.asm 89 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 91 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 118 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 120 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 135 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 141 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 144 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 733 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 734 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 750 : register in operand not in bank 0. ensure that bank bits are correct.
error[149]   e:\pic test\1\mc_16f72.asm 900 : directive only allowed when generating an object file
halting build on first failure as requested.
----------------------------------------------------------------------
release build of project `e:\pic test\1\1.mcp' failed.
fri jul 04 1130 2008
----------------------------------------------------------------------
build failed

然后我根据error 149 就改成输出build library target (invoke mplib)
这次编译成功了 但是按照help 此种只能生成.o文件 也确实生成了一个.o文件
但是下一步该怎样做呢? 怎么才能生成 hex文件呢 晕了

----------------------------------------------------------------------
debug build of project `e:\pic test\1\1.mcp' started.
preprocessor symbol `__debug' is defined.
fri jul 04 1115 2008
----------------------------------------------------------------------
make: the target "e:\pic test\1\mc_16f72.o" is out of date.
executing: "c:\program files\microchip\mpasm suite\mpasmwin.exe" /q /p16cxx "mc_16f72.asm" /l"mc_16f72.lst" /e"mc_16f72.err" /o"mc_16f72.o" /d__debug=1 /x"mc_16f72.xrf" /ainhx8m
message[301] c:\program files\microchip\mpasm suite\p16f72.inc 35 : message: (processor-header file mismatch. verify selected processor.)
message[302] e:\pic test\1\mc_16f72.asm 89 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 91 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 118 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 120 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 135 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 141 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 144 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 733 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 734 : register in operand not in bank 0. ensure that bank bits are correct.
message[302] e:\pic test\1\mc_16f72.asm 750 : register in operand not in bank 0. ensure that bank bits are correct.
make: the target "e:\pic test\1\1.cof" is out of date.
executing: "c:\program files\microchip\mpasm suite\mplib.exe" /c "1.lib" "mc_16f72.o"
mplib 4.20, librarian
copyright (c) 2008 microchip technology inc.

errors   : 0

----------------------------------------------------------------------
debug build of project `e:\pic test\1\1.mcp' succeeded.
preprocessor symbol `__debug' is defined.
fri jul 04 1119 2008
----------------------------------------------------------------------
build succeeded
附件: Using_PIC16F72.zip (0 K) 下载次数:197
离线szcharle
发帖
13335
只看该作者 1楼 发表于: 2008-07-04
我尝试编译那些普通的example 可以编译通过的 (说明编译器和我可能没有问题)
单片机型号也没有选错啊 环境变量没改 尝试指定 如lib lkr的 也没有用

这个程序 纯粹的汇编 根据作者说明 有一段db(sine表) 是要在开机时候从rom加载到ram中的
我怀疑是不是这段导致的编译不能啊

an967的原链接
http://www.microchip.com/stellent/idcplg?idcservice=ss_get_page&nodeid=1824&appnote=en022135

老大们帮我看看吧 或许对你们是个很简单的小问题 对我这个新手 我看能卡死我啊 呜呜
离线xjl
发帖
1244
只看该作者 2楼 发表于: 2008-07-04
我不太懂,只是有些好奇,没有把变量名用伪指令指定到具体的寄存器上,楼主是用的什么编译器?
离线szcharle
发帖
13335
只看该作者 3楼 发表于: 2008-07-04
'
我不太懂,只是有些好奇,没有把变量名用伪指令指定到具体的寄存器上,楼主是用的什么编译器?
'
mplab v8.10 昨天microchip网站上下的
离线机器猫
发帖
3719
只看该作者 4楼 发表于: 2008-07-04
用户被禁言,该主题自动屏蔽!
离线szcharle
发帖
13335
只看该作者 5楼 发表于: 2008-07-04
[quote=机器猫]你无耻的样子颇有我年轻时的神韵...[/quote]
你年轻的时候有多无耻? 我说实话吧 我真想说 那位老大编译了 把hex文件上载上来

第一 程序是别人写的 况且是例程 应该没问题的吧
第二 实在是不熟悉 还想用 还懒 :)
离线机器猫
发帖
3719
只看该作者 6楼 发表于: 2008-07-04
用户被禁言,该主题自动屏蔽!
离线机器猫
发帖
3719
只看该作者 7楼 发表于: 2008-07-04
用户被禁言,该主题自动屏蔽!
离线bellstudio
发帖
2820
只看该作者 8楼 发表于: 2008-07-04
问题出在code这个伪指令上。。。作者可能是为了和其他项目一起链接,把代码搞成可重定位的。。。
我把代码都手动定位了,就好了
把附件后缀改为asm就可以用了
附件: MC_16F72.txt (0 K) 下载次数:234
离线szcharle
发帖
13335
只看该作者 9楼 发表于: 2008-07-04
谢谢“贝尔实验室”眼泪哗哗的!
看来俺“无耻”的有道理啊! 俺也是对这个code花魂 但是 这个问题对于俺这种无知新手 好像还真是个撞南墙的主 谢谢!
离线szcharle
发帖
13335
只看该作者 10楼 发表于: 2008-07-04
用著名的p#¥%@ 软件模拟了一下 看到了spwm波 很兴奋
再次感谢贝尔实验室! 这要是自己搞 没有仙人指路 真不知道啥时候能搞定 或许看一圈文档后能明白 那,那得什么时候啊!
下一步就是读懂程序 整个真实的板子试试啦 俺的吊扇无极变频调速终于有着落了
离线szcharle
发帖
13335
只看该作者 11楼 发表于: 2008-07-04
[quote=机器猫]查理给你介绍一个PIC的BASIC吧。。[/quote]
暂时先不要了 谢谢!不过bascom的上手容易度 确实挺震撼的 要是bascom也出pic的basic就好了
离线BG4XCR
发帖
33381
只看该作者 12楼 发表于: 2008-07-04
'
暂时先不要了 谢谢!不过bascom的上手容易度 确实挺震撼的 要是bascom也出pic的basic就好了
'
也有一样的。。。
离线radiolee
发帖
6050
只看该作者 13楼 发表于: 2008-07-04
降低mplab版本即可。
lz搞这个有没有实际用途?是否可以进行自动的vf测试?
离线szcharle
发帖
13335
只看该作者 14楼 发表于: 2008-07-04
'
降低mplab版本即可。
lz搞这个有没有实际用途?是否可以进行自动的vf测试?
'
为啥降低mplab版本就可以?
可以给单相电机调速啊
离线radiolee
发帖
6050
只看该作者 15楼 发表于: 2008-07-04
'
为啥降低mplab版本就可以?
可以给单相电机调速啊
'

因为新版mplab总是对以前一些不规范的写法进行限制。我记得我把cdg2000的代码从mplab5移植到7之后的版本时,写坏多片18f,是由于__config全局定义不受支持,改错了造成的

吊扇,为什么不用可控硅呢? 但还是期待lz帮忙做一下可靠性测试,我想把它用在比较重要的场合(非商用)
离线BG4XCR
发帖
33381
只看该作者 16楼 发表于: 2008-07-04
这本书比北航和清华那两本bascom-avr通俗易懂多了。。
不得不承认国外作者的能力。。
离线BG4XCR
发帖
33381
只看该作者 17楼 发表于: 2008-07-04

小图 | 大图 图片

  • 哈罗CQ火腿社区 - 单片机与自动控制 - 被搞定了! PIC16F72 单相交流电机VF驱动
  • 哈罗CQ火腿社区 - 单片机与自动控制 - 被搞定了! PIC16F72 单相交流电机VF驱动
  • 哈罗CQ火腿社区 - 单片机与自动控制 - 被搞定了! PIC16F72 单相交流电机VF驱动
  • 哈罗CQ火腿社区 - 单片机与自动控制 - 被搞定了! PIC16F72 单相交流电机VF驱动
  • 哈罗CQ火腿社区 - 单片机与自动控制 - 被搞定了! PIC16F72 单相交流电机VF驱动
离线BG4XCR
发帖
33381
只看该作者 18楼 发表于: 2008-07-04
离线szcharle
发帖
13335
只看该作者 19楼 发表于: 2008-07-04
楼上这纯粹是诱惑我花钱买书啊!
另外 怎么你和你的马甲来回闪亮登场啊?