• 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 (foxjan)




Re: 請教PIC 的hex檔怎麼看
資深會員
資深會員


hex格式 算是歷史悠久的格式了 下有說明

INTEL HEX

圖片有範例

Attach file:



jpg  (0.00 KB)


發表於: 2010/1/13 15:34
My name is jan,Jan是棒的
頂部


Re: PIC16F877A UART
資深會員
資深會員


附上MICROCHIP的SAMPLE CODE 參考一下

Attach file:


Link only for registered users

發表於: 2010/1/13 10:06
My name is jan,Jan是棒的
頂部


Re: PIC16F877A UART
資深會員
資深會員


老兄在你0X00到GOTO MAIN之間有一段程式空間都是中斷向量

所以建你在MAIN之前加上程式起始位置的設定

而且所有的程式碼建議在MAIN之後執行,以免你死在中斷裡

還有中斷預留的程式段,也建議補上去



不怕一萬,只怕萬一

參照:

xuan_root 寫道:
是的...我一直在重複檢查看自己有沒有做了什麼蠢事...
不過好像還沒發現-..-!


list    p=16f877a
    
include"p16f877.inc"
    
__CONFIG _XT_OSC&_WDT_OFF&_BODEN_OFF

    org    0x0
    call    uart_init
[color=003399]----最好移到MAIN後面[/color]
    goto    
main
                

                
[color=003399]org  0x0020---最好再加上[/color]
main:
    
call    send_data
    
goto    $

send_data:
    
banksel    PIR1
    btfsc    PIR1
,TXIF
    
goto    get_data
    
goto    send_data
get_data
:
    
banksel    TXREG
    movlw    
'a'
    
movwf    TXREG
    
return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
uart_init:
    
banksel    TRISC
    bcf        TRISC
,6
    bsf     TRISC
,7
    movlw    D
'25'
    
movwf    SPBRG
    bsf        TXSTA
,BRGH
    bcf        TXSTA
,SYNC
    bsf        TXSTA
,TXEN
    bcf        TXSTA
,TX9
    banksel    RCSTA
    bsf        RCSTA
,CREN
    bsf        RCSTA
,SPEN
    
return

    
end

發表於: 2010/1/13 9:54

Edited by foxjan on 2010年01月13日 10:11:28
My name is jan,Jan是棒的
頂部


Re: 請教 PIC16F505 開機誤動作問題
資深會員
資深會員


最簡單的老方法 開機時加個大概100ms的延遲副程式

還有開機時 io及相關register有做初值設定嗎

按鈕有加debounce嗎,
debounce是大約幾十ms 檢查一次 連續檢查n次都有
才確定真的有按下 才會送出按鍵碼或執行相關程式

發表於: 2010/1/12 18:25
My name is jan,Jan是棒的
頂部


Re: 如何寫一個 delay_us() function?
資深會員
資深會員


參照:

coopermaa 寫道:
Hi,

我在寫一支程式,想要增加兩個 delay functions: 一個用來 delay miliseconds,另一個用來 delay microsecods,延遲時間皆由傳進來的參數決定。底下是我寫出來的版本,目前遇到一個困難,delay() 誤差還算在可接受的範圍,但 delayus() 因為本身 loop 執行就要一些時間,會造成誤差,實際量測,delayus(1) = 3.58us,delayus(2) = 4.75us... 請問 delay microseconds 要怎麼寫才會比較精準呢? 我用的是 C18 and PIC18F4550。

// Delay in 1 ms (approximately) for 48 MHz Internal Clock
void delay(unsigned int ms)
{
  do {
    
Delay1KTCYx(12);
  } while(--
ms);
}

// Delay in 1 us (approximately) for 48 MHz Internal Clock
// well, it's not accurate!!
void delayus(unsigned int us)
{
  while (
us--);
}


1.請先算出1個指令時間多長(因為指令執行時間是由OSC除頻來的)

2.請在副程式段使用組語編譯,這樣要延遲幾個指令時間可以精準算出來,如果要很精準請連呼叫前後的指令時間一併計算

3.要看出TATAL 跑了那些指令 可以在BUILD之後點出VIEW的DISASSEMBLY LISTING 選項,這樣跑了那些指令 你會一目了然

4.c的好處是你前端給需求,他後面都幫妳做好,但是菜怎麼出來的,不知道,組語的壞處是一個蘿蔔一個坑,好處是做了什麼,心裡有"數"

發表於: 2010/1/8 9:58
頂部



« 1 ... 13 14 15 (16)



:::

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

教育訓練中心

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