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


Browsing this Thread:   1 Anonymous Users




« 1 (2)


Re: 請教關於code簡化以減少Instruction cycle達到更高效率實現更高頻率的問題
#3
新會員
新會員


查看用戶資訊
那麼要怎麼做才能提高FOSC呢?振盪器頻率是可以調的嗎?我不會組合語言,在C上有辦法改進嗎?萬分感激你的回覆

發表於: 2009/10/24 20:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教關於code簡化以減少Instruction cycle達到更高效率實現更高頻率的問題
#2
版主
版主


查看用戶資訊
18F4520 拉高到 20MHz,改用組合語言寫,那速度就可以很快了。

發表於: 2009/10/23 10:40
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請教關於code簡化以減少Instruction cycle達到更高效率實現更高頻率的問題
#1
新會員
新會員


查看用戶資訊
不同的語句statement算作不同的move型instructions,在執行時都要花費Tcy,設適當的delay,以期達到需要的頻率。下麵寫的是一個為DAC提供三角波型號的program,在執行時想要達到1,2,4,8kHz的信號。使用的是PIC18LF4520,FOSC是10MHz。
delay語句參數是按照理論計算得出的,但在安裝上DAC以後發現頻率偏差較大,具體說是太慢,程式效率低。怎樣才能實現更高的頻率呢?這個程式沒有delay時最高能達到4kHz,每個子while語句怎樣簡化程式才能實現8kHz甚至更高呢?



#include<p18f4520.h>
#include<delays.h>
void main(void)
{
int value;
ADCON1=0x0F;
TRISA=0x0f;
TRISD=0xE0;
LATD=0x00;
while(1)
{
while(PORTA==0x01)
{
for(value=0;value<32;value++)
{
LATD=value;
Delay10TCYx(4);
}
for(;value>1;value--)
{
LATD=value-2;
Delay10TCYx(4);
}
}
while(PORTA==0x02)
{
for(value=0;value<32;value++)
{
LATD=value;
Delay10TCYx(2);
}
for(;value>1;value--)
{
LATD=value-2;
Delay10TCYx(2);
}
}
while(PORTA==0x04)
{
for(value=0;value<32;value++)
{
LATD=value;
Delay10TCYx(1);
}
for(;value>1;value--)
{
LATD=value-2;
Delay10TCYx(1);
}
}
while(PORTA==0x08)
{
for(value=0;value<32;value++)
{
LATD=value;
Delay1TCY();
Delay1TCY();
Delay1TCY();
Delay1TCY();
Delay1TCY();

}
for(;value>1;value--)
{
LATD=value-2;
Delay1TCY();
Delay1TCY();
Delay1TCY();
Delay1TCY();
Delay1TCY();
}
}
}
}

發表於: 2009/10/23 4:27
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... ]

教育訓練中心

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