• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   3 Anonymous Users




(1) 2 »


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#11
版主
版主


查看用戶資訊
參照:

foxjan 寫道:
那我說明一下

SWITCH(外部選擇)
{
case(外部選擇1)
組語架構主程式,由於需判斷高速中斷的CLOCK,無法使用C語言當主程式架構.
那這段程式就用組語寫一個函數就可以了。 C 呼叫組語的函數是醫定會有的功能。
BREAK;
case(外部選擇2)
C架構主程式(後門程式或稱工程模式),為了便利使用,MICROCHIP的應用範例(APPLACATION NOTE) ,如uart.
BREAK;

}


有解,無解,傻傻分不清楚
看懂,不懂,傻傻分不清楚

發表於: 2010/1/22 17:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#10
資深會員
資深會員


查看用戶資訊
好累.....(我想我就到此就好了)

問題來來回回,講半天,也沒有提到任何IC型號,spec.....

最後得到"曼徹斯特編碼".....(當然"曼徹斯特編碼"也有好幾種)

但是"曼徹斯特編碼"是沒有clock(clock是隠含在DATA中)

所以,如果我理解沒錯的話....

>>我目前的案子需要用到外部中斷 外部的CLOCK約125K HZ

>>但是需要計數 16次之後才會進中斷
>>也就是中斷時間,大約 1/125K HZ*16約等於128us

這句話本身就錯了.....(參看下圖"曼徹斯特編碼")
它本身並不是固定125Khz(有快有慢)...

最後,祝你找到答案,加油!!!

Attach file:



jpg  (0.00 KB)


發表於: 2010/1/21 17:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#9
資深會員
資深會員


查看用戶資訊
硬體作的中斷 怎麼會不準 我也感到不解

但是 問題就是發生了

老實說 整個PROJECT

為了C我試過一遍又一遍

所有程式除了主程式
一個是用C當MAIN 一個用組語當MAIN

其他都是用組語編寫

RFID 125K CLOCK 曼徹斯特編碼的DATA 64個BIT

中斷只做RELOAD TIME跟DATA SHIFT的動作

用組語讀取一個一個讀完都沒問題
用C讀幾個就錯一次

一樣的TIMER設定 一樣的副程式

你覺得我該怎麼說 我也想用C開發呀

問代理商 線上問論壇 能問能找我都試了

說是C中斷呼叫副程式展開之後 會有一堆存取動作的指令

好 那我不呼叫 搬到中斷的副程式裡做總行了吧

還是一樣讀幾個就錯一次

條件都一樣 怎麼一個行 一個不行 我也很納悶

但是事實就擺在眼前我能說什麼

發表於: 2010/1/21 15:05
My name is jan,Jan是棒的
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#8
資深會員
資深會員


查看用戶資訊
>> 128uS 不多,但是8uS的CLOCK不能MISS掉 這才是問題點

"整段"!!??.......

我想我也不想口水戰.......至始至終,再怎麼看都是"片段"
(沒看到為什麼C就不行,ASM才行....)
所以就沒回主題為"Re: C18底下開BIT 討論一下"..中又問了好幾個與主題無關的問題

8uS ...不就是125KHz,但125KHz是clock,接到timer去....
為什麼會MISS, 不是很了解.

原因: 就本人了解,8uS(125KHz)只是給timer的clock(不是進中斷).
且在timer設除16(每16 count進一次中斷)
這是不解之處....8uS(125KHz)為什麼會MISS
1. 是(PIC)H/W bug!!?? #或許spec, 或版主可以幫忙解答一下
2. 是8uS(125KHz),有問題!!??(雜訊,頻漂,.....). 可能只有你知道
3. 其他.....(還沒想到)
或是什麼原因可以告知嗎!!??

128uS(進中斷),一樣可以in-line ASM.....
所以版主回了
>>128uS 中斷一次不算快,用 C 寫應是OK的,除非你在中斷裡
>>作太多事了或有一些數學運算的運算。建議你用 MPALB SIM
>>模擬一下中斷所需的執行時間,C18 & PICC18 都可以支援
>> In-Line Assembly 的功能,配合著使用可以解決一些對
>>Timing 要求較高的應用

發表於: 2010/1/21 14:28
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#7
資深會員
資深會員


查看用戶資訊
老兄 你有整段看完嗎

發表於: 2010/1/21 13:40
My name is jan,Jan是棒的
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#6
資深會員
資深會員


查看用戶資訊
你說的是這個嗎?

>>我目前的案子需要用到外部中斷 外部的CLOCK約125K HZ

>>但是需要計數 16次之後才會進中斷
>>也就是中斷時間,大約 1/125K HZ*16約等於128us

>>我目前OSC使用16M HZ 也就是一個指令時間為0.25us

如果是.....
外部clock (125K) ,接至timer, timer 設為每16個count,
觸發一次中斷
則(如你所計算)
1指令週期是0.25uS, 中斷相隔為128uS,共有 512指令週期可用

512指令週期在中斷,C是可以勝任的.
所以看不出,為什麼一定要用ASM

*註:正常中斷的使用是,中斷時,只是設enable flag
(告訴主程式,去做某事),就離開中斷,而不是做了一堆事,
反而造成中斷時間不夠用....

以上參考看看

發表於: 2010/1/21 11:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#5
資深會員
資深會員


查看用戶資訊
那我說明一下

SWITCH(外部選擇)
{
case(外部選擇1)
組語架構主程式,由於需判斷高速中斷的CLOCK,無法使用C語言當主程式架構.
BREAK;
case(外部選擇2)
C架構主程式(後門程式或稱工程模式),為了便利使用,MICROCHIP的應用範例(APPLACATION NOTE) ,如uart.
BREAK;

}


有解,無解,傻傻分不清楚
看懂,不懂,傻傻分不清楚

發表於: 2010/1/21 11:16
My name is jan,Jan是棒的
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#4
資深會員
資深會員


查看用戶資訊
簡述(or詳述)你的問題/用途... 或許有人可以用不一樣的方法,
來解你的問題.

發表於: 2010/1/21 9:49
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#3
資深會員
資深會員


查看用戶資訊
如果能以C為主架構 那早解決了

其實我想過 主程式段好解決 主要問題是中斷的使用

如果 將兩個架構用高低優先權的中斷來切開不知道是否可能
(一個架構用高優先,一個用低優先)
這樣切開 優先權就沒啥意義了
但是有些中斷只能在高優先執行 這樣判斷上的處理 又要特別小心了

發表於: 2010/1/21 9:34
My name is jan,Jan是棒的
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有可能透過外部選擇執行不同語言架構的主程式嗎(c18 or a18)
#2
版主
版主


查看用戶資訊
建議是主架構用C 為基礎,程式進入 main( ) 函數後就可以呼叫用組與寫的函數了,你可以參考一下Microchip C18 所提供的函數庫原始碼,者裡面很的的函數也都是用組語寫的。
例如: atoi( ) 參考這裡:
C:\MCC18\src\traditional\stdclib

還有 C 裡面業可以直接使用嵌入式組合語言的,有關 C18 與 Assembly 的合擯使用可以參考 W401 C18 教育訓練的第七章裡的說明與範例。

http://www.microchip.com.tw/modules/w ... glefile.php?cid=4&lid=236

發表於: 2010/1/20 14:07
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

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... ]

教育訓練中心

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