• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::

論壇索引


Board index » All Posts (twd3621576)




simulator logic analazer 怎么串口模拟
#11
新會員
新會員


请教 simulator logic analazer 串口模拟怎么操作呀 MPLAB IDE 的 debug模式下  在 VIEW有这么一项功能 串口中断 应该怎么模拟 
 谢谢!
 

發表於: 2009/6/17 15:41

Edited by twd3621576 on 2009年06月17日 17:31:09
頂部


8个数码管动态显示高位为0时怎么清除?
#12
新會員
新會員


显示有8个数码管 比如现在 显示的是 12345678 但是如果是 显示 00000001的话 我只需要他显示 一个 1 其他的 0 就全部熄灭
如果是 00000010 的话 我只要他显示 10 其他的 0 也全部熄灭

请求 这种算法 怎么实现 ? 谢谢!

發表於: 2009/4/6 0:55
頂部


关键字static应用的疑问
#13
新會員
新會員


Temp()是主函数调用的一个子函数 通过调试结果发现 添加与不添加关键字变量 i 在运行过程中结果是一样的 。且i的值都一直为递增。

问题一:添加关键字static跟代码长度有关系,且对代码是否有影响。
分析 :代码加了static关键字的代码明显少许多,然而当添加其他关键字时与不添加关键字的代码都一样。
所以添加static那不是就能起到优化代码的目的了吗
结论 :既然这样,每次在子函数中使用到的变量都用static关键字申明。请求帮忙分析!

问题二:申明与不申明关键字static时被调用时对变量初始化问题
分析: C语言中添加关键字static在被调用的时候只初始化一次待下次调用的时候以前次结果为依据,所以上面结果是正确的。
但是不添加关键字static时应该是每次调用应都该初始化一次变量把。数值应该不会一直递增的。
结论:是编译器自动优化还是与标准C 有区别或是个人理解有问题。

附加:而通过对比 51中keil的汇编代码加不加static代码都一样

/***************************什么关键
簡體轉繁體方便閱讀 :
Temp()是主函數調用的一個子函數 通過調試結果發現 添加與不添加關鍵字變數 i 在運行過程中結果是一樣的 。且i的值都一直為遞增。

問題一:添加關鍵字static跟代碼長度有關係,且對代碼是否有影響。
分析 :代碼加了static關鍵字的代碼明顯少許多,然而當添加其他關鍵字時與不添加關鍵字的代碼都一樣。
所以添加static那不是就能起到優化代碼的目的了嗎
結論 :既然這樣,每次在子函數中使用到的變數都用static關鍵字申明。請求幫忙分析!

問題二:申明與不申明關鍵字static時被調用時對變數初始化問題
分析: C語言中添加關鍵字static在被調用的時候只初始化一次待下次調用的時候以前次結果為依據,所以上面結果是正確的。
但是不添加關鍵字static時應該是每次調用應都該初始化一次變數把。數值應該不會一直遞增的。
結論:是編譯器自動優化還是與標準C 有區別或是個人理解有問題。

附加:而通過對比 51中keil的彙編代碼加不加static代碼都一樣

/***************************什麼關鍵字也沒


字也没加************************************************************/
void temp(void)
00CA CFD9 MOVFF 0xfd9, 0xfe6
00CC FFE6 NOP
00CE CFE1 MOVFF 0xfe1, 0xfd9
00D0 FFD9 NOP
00D2 52E6 MOVF 0xfe6, F, ACCESS
5: {
6: //register
7: //static
8: //volatile
9: unsigned char i ;
00D4 2ADF INCF 0xfdf, F, ACCESS
10: i++;
00D6 52E5 MOVF 0xfe5, F, ACCESS
00D8 52E5 MOVF 0xfe5, F, ACCESS
00DA CFE7 MOVFF 0xfe7, 0xfd9
00DC FFD9 NOP
00DE 0012 RETURN 0
/***************************添加volatile关键字**************************************************************/
void temp(void)
00CA CFD9 MOVFF 0xfd9, 0xfe6
00CC FFE6 NOP
00CE CFE1 MOVFF 0xfe1, 0xfd9
00D0 FFD9 NOP
00D2 52E6 MOVF 0xfe6, F, ACCESS
5: {
6: //register
7: //static
8: volatile
9: unsigned char i ;
10: i++;
00D4 2ADF INCF 0xfdf, F, ACCESS
11: }
00D6 52E5 MOVF 0xfe5, F, ACCESS
00D8 52E5 MOVF 0xfe5, F, ACCESS
00DA CFE7 MOVFF 0xfe7, 0xfd9
00DC FFD9 NOP
00DE 0012 RETURN 0
/*********************************添加register关键字*******************************************************************************/
void temp(void)
00CA CFD9 MOVFF 0xfd9, 0xfe6
00CC FFE6 NOP
00CE CFE1 MOVFF 0xfe1, 0xfd9
00D0 FFD9 NOP
00D2 52E6 MOVF 0xfe6, F, ACCESS
5: {
6: register
7: //static
8: //volatile
9: unsigned char i ;
10: i++;
00D4 2ADF INCF 0xfdf, F, ACCESS
11: }
00D6 52E5 MOVF 0xfe5, F, ACCESS
00D8 52E5 MOVF 0xfe5, F, ACCESS
00DA CFE7 MOVFF 0xfe7, 0xfd9
00DC FFD9 NOP
00DE 0012 RETURN 0
/*****************************添加static关键字************************************************************************/
void temp(void)
5: {
6: //register
7: static
8: //volatile
9: unsigned char i ;
10: i++;
00E2 0100 MOVLB 0
00E4 2B8A INCF 0x8a, F, BANKED
11: }
00E6 0012 RETURN 0

Attach file:


Link only for registered users

發表於: 2009/4/3 11:02

Edited by Ryang on 2009年04月03日 13:41:54
頂部


函数申明static 怎么调用
#14
新會員
新會員


要表达的意思是 有些函数需要用 static 来申明 且这些函数不是放在主函数里面而是放在其他的 。C文件里面
且在任何文件里面都可以调用他。

Attach file:


Link only for registered users

gif  (0.00 KB)


發表於: 2009/4/1 16:17
頂部


PIC 只能烧录一次
#15
新會員
新會員


我的PIC 为什么只能烧录一次

烧第二次就不行了
换个新的 又可以 但是还只可以烧一次
请各位帮帮忙!

發表於: 2009/1/20 0:28
頂部


PIC 最好用全局变量还是局部变量?
#16
新會員
新會員


在MPLAB 编译器中 +MCC18中 发现用全局变量编译出的代码比使用局部变量编译出来的 代码更少(通过查看生成的 汇编代码玉 HEX文件)

但是从理论讲 应该是 使用全局变量 是 定义在 RAM中的
局部变量是 在 寄存器里面的 不论是 代码的 效率高 还是执行速度高 都应该是 尽量使用局部变量才好

但是通过上面的 对比好像恰恰相反??

在此请教大家的 帮助 先谢谢了 !

發表於: 2008/10/30 0:04

Edited by twd3621576 on 2008年10月30日 00:26:56
頂部


Re: MPLAB 8.10 + MCC18头文件为什么不能加*.C文件
#17
新會員
新會員


太感谢你们了 问题解决!!!

發表於: 2008/10/20 0:04
頂部


MPLAB 8.10 + MCC18头文件为什么不能加*.C文件
#18
新會員
新會員


MPLAB 8.10 + MCC18头文件为什么不能加*.C文件

Attach file:



jpg  (0.00 KB)


發表於: 2008/10/13 17:08
頂部



« 1 (2)



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------