dsPIC c30 Encoder 的使用
|
||||
---|---|---|---|---|
新會員
|
原本如此!!
QEA, QEB 與 A/D 共用腳位, 使用 QEI, 記得把 QEA, QEB 腳位 定為 digital!
發表於: 2005/7/26 16:10
|
|||
|
Re: 請問PIC有自我測試的程式嗎?
|
||||
---|---|---|---|---|
版主
|
請找DATA SHEET中有閼於TABLE READ的章節,應該就是您要的答案。
發表於: 2005/7/26 15:59
|
|||
|
Re: 請問要如何寫入TMR0H ?
|
||||
---|---|---|---|---|
版主
|
1、要先將某值填入TMR0H,再將某值填入TMR0L:此時,TMR0的16-BIT 值才會同時更新。
2、根據方塊圖,TMR0H是無法自動變化的。必須下達READ TMR0L的指令,TMR0高位元的值才會同時被填到TMR0H。所以,也許您執行過READE TMR0L之類的指令之後,就會看到TMR0H的值發生改變了。
發表於: 2005/7/26 15:38
|
|||
|
請問一下...LCD的問題
|
||||
---|---|---|---|---|
中級會員
|
大家好 請問一下
PICDEM_2_PLUS Demoboard 的 LCD需不需要驅動程式 我使用PIC 16F873A 我參照光碟理的範例 但是還是出不來 可否指點一下 謝謝 以下是我的程式碼 list p=16F873a #include P16F873a.inc #define LCD_D4 PORTB, 0 ; LCD data bits #define LCD_D5 PORTB, 1 #define LCD_D6 PORTB, 2 #define LCD_D7 PORTB, 3 #define LCD_D4_DIR TRISB, 0 ; LCD data bits #define LCD_D5_DIR TRISB, 1 #define LCD_D6_DIR TRISB, 2 #define LCD_D7_DIR TRISB, 3 #define LCD_E PORTA, 1 ; LCD E clock #define LCD_RW PORTA, 2 ; LCD read/write line #define LCD_RS PORTA, 3 ; LCD register select line #define LCD_E_DIR TRISA, 1 #define LCD_RW_DIR TRISA, 2 #define LCD_RS_DIR TRISA, 3 #define LCD_INS 0 #define LCD_DATA 1 D_LCD_DATA UDATA 0x10 COUNTER res 1 delay res 1 temp_wr res 1 temp_rd res 1 GLOBAL temp_wr PROG1 CODE ;*************************************************************************** LCDLine_1 banksel temp_wr movlw 0x80 movwf temp_wr call i_write return GLOBAL LCDLine_1 LCDLine_2 banksel temp_wr movlw 0xC0 movwf temp_wr call i_write return GLOBAL LCDLine_2 d_write ;write data call LCDBusy bsf STATUS, C call LCDWrite banksel TXREG ;move data into TXREG movwf TXREG banksel TXSTA btfss TXSTA,TRMT ;wait for data TX goto $-1 banksel PORTA return GLOBAL d_write i_write ;write instruction call LCDBusy bcf STATUS, C call LCDWrite return GLOBAL i_write rlcd macro MYREGISTER IF MYREGISTER == 1 bsf STATUS, C call LCDRead ELSE bcf STATUS, C call LCDRead ENDIF endm ;**************************************************************************** ; ******************************************************************* LCDInit clrf PORTA banksel TRISA ;configure control lines bcf LCD_E_DIR bcf LCD_RW_DIR bcf LCD_RS_DIR movlw b'00001110' banksel ADCON1 movwf ADCON1 movlw 0xff ; Wait ~15ms @ 20 MHz banksel COUNTER movwf COUNTER movlw 0xFF banksel delay movwf delay call DelayXCycles decfsz COUNTER, F goto $-3 movlw b'00110000' ;#1 Send control sequence movwf temp_wr bcf STATUS,C call LCDWriteNibble movlw 0xff ;Wait ~4ms @ 20 MHz movwf COUNTER movlw 0xFF movwf delay call DelayXCycles decfsz COUNTER, F goto $-3 movlw b'00110000' ;#2 Send control sequence movwf temp_wr bcf STATUS,C call LCDWriteNibble movlw 0xFF ;Wait ~100us @ 20 MHz movwf delay call DelayXCycles movlw b'0011000' ;#3 Send control sequence movwf temp_wr bcf STATUS,C call LCDWriteNibble ;test delay movlw 0xFF ;Wait ~100us @ 20 MHz movwf delay call DelayXCycles movlw b'00100000' ;#4 set 4-bit movwf temp_wr bcf STATUS,C call LCDWriteNibble call LCDBusy ;Busy? movlw b'00101000' ;#5 Function set movwf temp_wr call i_write movlw b'00001101' ;#6 Display = ON movwf temp_wr call i_write movlw b'00000001' ;#7 Display Clear movwf temp_wr call i_write movlw b'00000110' ;#8 Entry Mode movwf temp_wr call i_write movlw b'10000000' ;DDRAM addresss 0000 movwf temp_wr call i_write movlw b'00000010' ;return home movwf temp_wr call i_write return GLOBAL LCDInit ; ******************************************************************* ;**************************************************************************** ; _ ______________________________ ; RS _>--<______________________________ ; _____ ; RW \_____________________________ ; __________________ ; E ____________/ \___ ; _____________ ______ ; DB _____________>--------------<______ ; LCDWriteNibble btfss STATUS, C ; Set the register select bcf LCD_RS btfsc STATUS, C bsf LCD_RS bcf LCD_RW ; Set write mode banksel TRISB bcf LCD_D4_DIR ; Set data bits to outputs bcf LCD_D5_DIR bcf LCD_D6_DIR bcf LCD_D7_DIR NOP ; Small delay NOP banksel PORTA bsf LCD_E ; Setup to clock data btfss temp_wr, 7 ; Set high nibble bcf LCD_D7 btfsc temp_wr, 7 bsf LCD_D7 btfss temp_wr, 6 bcf LCD_D6 btfsc temp_wr, 6 bsf LCD_D6 btfss temp_wr, 5 bcf LCD_D5 btfsc temp_wr, 5 bsf LCD_D5 btfss temp_wr, 4 bcf LCD_D4 btfsc temp_wr, 4 bsf LCD_D4 NOP NOP bcf LCD_E ; Send the data return ; ******************************************************************* ; ******************************************************************* LCDWrite call LCDBusy call LCDWriteNibble BANKSEL temp_wr swapf temp_wr, f call LCDWriteNibble banksel temp_wr swapf temp_wr,f return GLOBAL LCDWrite ; ******************************************************************* ; ******************************************************************* ; _____ _____________________________________________________ ; RS _____>--<_____________________________________________________ ; ____________________________________________________ ; RW _________/ ; ____________________ ____________________ ; E ____________/ \____/ \__ ; _________________ __________ ___ ; DB _________________>--------------<__________>--------------<___ ; LCDRead banksel TRISB bsf LCD_D4_DIR ; Set data bits to inputs bsf LCD_D5_DIR bsf LCD_D6_DIR bsf LCD_D7_DIR BANKSEL PORTA btfss STATUS, C ; Set the register select bcf LCD_RS btfsc STATUS, C bsf LCD_RS bsf LCD_RW ;Read = 1 NOP NOP bsf LCD_E ; Setup to clock data NOP NOP NOP NOP btfss LCD_D7 ; Get high nibble bcf temp_rd, 7 btfsc LCD_D7 bsf temp_rd, 7 btfss LCD_D6 bcf temp_rd, 6 btfsc LCD_D6 bsf temp_rd, 6 btfss LCD_D5 bcf temp_rd, 5 btfsc LCD_D5 bsf temp_rd, 5 btfss LCD_D4 bcf temp_rd, 4 btfsc LCD_D4 bsf temp_rd, 4 bcf LCD_E ; Finished reading the data NOP NOP NOP NOP NOP NOP NOP NOP bsf LCD_E ; Setup to clock data NOP NOP btfss LCD_D7 ; Get low nibble bcf temp_rd, 3 btfsc LCD_D7 bsf temp_rd, 3 btfss LCD_D6
發表於: 2005/7/26 15:00
|
|||
|
也是 dsPIC c30 Encoder 的問題
|
||||
---|---|---|---|---|
新會員
|
發表於: 2005/7/26 14:49
|
|||
|
Re: HCS362F and rfRXD0420
|
||||
---|---|---|---|---|
版主
|
在 KEELOQ Security ICs License CD 中有範例程式。詳情可以看:
http://ww1.microchip.com/downloads/en/DeviceDoc/30177t.pdf 取得該CD,可以透過: 1、台灣的代理商,如右方的列表。建議找對KEELOQ及RF比較熟的。 或者,逕洽: 2、asia.inquiry@microchip.com 另外,FSK和ASK的優缺點,有人說FSK抗雜訊能力較強,而ASK比較省電。
發表於: 2005/7/26 13:22
|
|||
|
PICmicro 在低電壓操作時可能因 BOR 被 Enable 而誤判為不震盪 ( 例如 PIC16LF72 )
|
||||
---|---|---|---|---|
管理員
|
大家好 :
7/25 有客戶問到 PIC16LF72 在 3.3V 無法工作 , 一定要把 Vdd 提高到 4V 以上才工作的問題 . 在此將發現的問題發表 . 因為我們在 7/25 接到電話時並未想到這一點 ----> BOR PIC16F72 / PIC16LF72 內部有 BOR 的功能 , 它的設定電位是固定的 ( 3,65V to 4.35V ) . 所以要在低電壓環境下操作時不可以 Enable BOR . 否則 CPU 會一直處於 RESET 狀態 ! 表面上看起來就好像是不震盪啦 ! Best Regards,
發表於: 2005/7/26 11:21
|
|||
|
HCS362F and rfRXD0420
|
||||
---|---|---|---|---|
新會員
|
各位前輩:
小弟接下一個新專案要用 HCS362F和rfRXD0420做無線傳輸. 希望有人能夠提供一組可以動(Tx可以傳,Rx可以收)的source code給我作為繼續發展的基礎架構. 看Data Sheet從頭寫實在太慢了. 我快被老闆釘到滿頭包了. 2.還有可以跟我說一下FSK和ASK有什麼不同及優缺點嗎?
發表於: 2005/7/26 10:32
|
|||
|
請問要如何寫入TMR0H ?
|
||||
---|---|---|---|---|
資深會員
|
使用18F452
;規劃TIMER0,8/16位元計數器
把TIMER0規劃為16位元計數器 但我還是只能寫入TMR0L 無法寫入TMR0H 用WATCH視窗看TMR0H的數值都永遠保持在00H 在範例程式裡及美國網站的應用筆記中都沒找到範例 規格書中的圖10-2 (TIMER0 BLOCK DIAGRAM IN 16-BIT MODE) 所畫的是什麼意思? TMR0L可以直接與資料匯流排讀寫 而要讀寫TMR0H必須透過TMR0L讀寫?! 可是我先寫入TMR0L後 再寫入TMR0H 他的值依然是00H... 用示波器看中斷時間 不論怎麼試就是無法改變TMR0H... 請問有沒有範例程式 或是教一下怎麼控制TMR0H 謝謝
發表於: 2005/7/26 10:15
|
|||
|