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

論壇索引


Board index » All Posts




Re: PIC 產品編碼
新會員
新會員


感謝你....


你好強喔


小D

發表於: 2004/8/18 10:50
頂部


Re: 時鐘問題
版主
版主


還有一個問題? 你說用4MHz (16F877用20MHZ)確定振盪頻率是否在20PPM誤差以內呢? 計時的部分是用軟體計數(那問題就大了)還是用硬體的計時器計數呢?

如果是用軟體計數方式,保證你會被其它的硬體中斷程式打亂時間保證不準的啦!

發表於: 2004/8/18 9:51
頂部


Re: 時鐘問題
版主
版主


既然使用PIC18F452那就簡單了,這裡有一個馬兒會跑又不太需要吃草的方法大家討論一下:
1. PIC18F452主振盪器使用 RC Mode (4-8MHz隨你便),Timer1接一個32.768KHz的Crystal; 利用 Timer1 的中斷來做為 Real Time Clock的來源。這樣程式就可以跑高速,又可以精確計時。
不過這種方式也會有些許誤差(中斷發生時至載入新的Timer1計數值的時間差) ; 但如果用Timer2的auto reload功能誤差就會非常非常低。


#define Timer_Count 32768

//************************************************
//* Function: InitializeTimer1 *
//************************************************
void InitializeTMR1(void)
{
T1CON=0b10001111; // Initialize Timer1 for using External 32.768KHz
IPR1bits.TMR1IP=0; // Set Timer1 for Low Priority Interrupt
PIR1bits.TMR1IF=0; // Clear Interrupt flag of Timer 1

TMR1H = (0xFFFF-Timer_Count)/256;
TMR1L = (0xFFFF-Timer_Count)%256; // Set for 1 Second Interrupt Time

PIE1bits.TMR1IE=1; // Enable Timer1 Interrupt
}


//************************************************
//* Function: isr_low_direct *
//* - Direct execution to the actual *
//* low-priority interrupt code. *
//************************************************
#pragma code isrlowcode = 0x0018

void isr_low_direct(void)
{
_asm //begin in-line assembly
goto isr_low //go to isr_high function
_endasm //end in-line assembly
}
#pragma code

//************************************************
//* Function: isr_low(void) *
//* - Timer 1 Interrupt for the 1 Second Delay *
//* for send the ON BUS polling *
//************************************************
#pragma interruptlow isr_low

void isr_low(void)
{
if (PIR1bits.TMR1IF)
{
TMR1H = (0xFFFF-Timer_Count)/256;
TMR1L = (0xFFFF-Timer_Count)%256; // Reload 1 Second value to Timer1
PIR1bits.TMR1IF=0; // Clear interrupt flag of Timer 1
:
:
}
}

發表於: 2004/8/18 9:41
頂部


Re: PIC12C508 規化為 EXTERNAL OSC CLK 輸入時..
初級會員
初級會員


參照:

minusone 寫道:
看data sheet中的敘述,應該就是說可以。這一點,和PIC16C5X不一樣。
不過,我自己是沒試過。
有沒有人試過?分享一下經驗吧!

可以啊他用External RC一樣可以選RB4及Clock OUT

發表於: 2004/8/18 1:50
頂部


Re: 時鐘問題
初級會員
初級會員


奇實不會誤差這麼大啦,我想Microchip的FAE已經給你提示了~~~32768....你2*2*2....一直乘到14次,會剛好是這個數字~~~為什麼他不用1Mhz 或其它的呢?因為這用硬体是簡單的,14個T flip-flop就可做到 0.5s 產生一個Pulse!
致於程式的部份我想是在中斷的時候你沒有做修正吧~~~如果你沒有開中斷的話,那........就真的只有MicroChip的FAE才能幫到你了吧!
你在中斷載入TCC的值是用ADD的方式還是用MOV的方式呢?想想吧~~~

發表於: 2004/8/18 1:40
頂部


Re: 結構化語法
初級會員
初級會員


家電產品結構化哦~~~這一點也是我先前在努力的方向~~~但是倒最後發現....在我所接觸的家電產品很難做到~~~可共用的大致上就是計時器啦,IR Decoder 之類的東西,而無法直接利用修改參數的方式去完成~~~~唉...呀呀~~也或許是我功力還太差吧~~不過,我...都是用很低階的在寫如16C54、16C505之類的啦~~~但,我不知道你要結構化的目地是不是和我一樣(縮短開發時間)~~~~

發表於: 2004/8/18 1:30
頂部


Re: 結構化語法
新會員
新會員


很高興看到以上的回應. 家電用品使用結構化語法我是第一次看到請問哪兒可以看到此一方面的資料....結構化指令用在complier directive 這點可以理解. 而作為實際執行的指令在組合語言程式中應該也是可能的, 並非一定是多個組合語言指令組成, 這點我已經在pic16f877及其他我所設計的十多種cpu 上實現, 這是一對一的對應.還有一般習慣是一行只寫一個指令,如果能寫多個指令, 在debug 時可以矩陣式地除錯,也是一大好處.不知這樣的語法有人有興趣嗎?

發表於: 2004/8/18 0:01
頂部


Re: 時鐘問題
版主
版主


知道不準的原因是什麼嗎?

提示:軟體沒寫好。

再提示:crystal的頻率如果不是特定值,軟體就不好寫。

再再提示:為什麼RTC通常用32768Hz?除了頻率低較省電以外?

發表於: 2004/8/17 18:32
頂部


Re: 時鐘問題
資深會員
資深會員


我用PIC16F877 來寫clock也是不準確
xtal 20MHZ的, C program
中斷時間設為1mS
結果也是大約誤差1分鐘左右(1hr)

經過微調count次數 仍然無法將誤差降到比較理想的情況
W201 用的好像也是外部crystal的方式
這樣好麻煩
有沒比較好的方法?

發表於: 2004/8/17 15:19
頂部


Re: 無法用icd2的除錯模式...
版主
版主


舊版本的 MPLAB IDE v6.30 可以除錯,較新版本的 MPLAB IDE v6.6 就不行除錯??? 我覺得很奇怪 ...

請問 ICD2 的 Operation System 是否有隨 MPLAB IDE 的版本一起更新? 要是你用 V6.6 但 ICD2 內部的 Firmware 還是舊版本鐵定是無法debug的。
更新方式 : In the MPLAB IDE "Debugger Manual --> DOwnload ICD2 Operation Syatem"

發表於: 2004/8/17 14:22
頂部



« 1 ... 7446 7447 7448 (7449) 7450 7451 7452 ... 7522 »



:::

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

教育訓練中心

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