會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)



« 1 ... 7170 7171 7172 (7173) 7174 7175 7176 ... 7226 »


Re: PIC16F818 I2C 問題
高級會員
註冊日期:
2004/06/15 10:18
文章: 97
等級: 8; EXP: 84
HP : 0 / 196
MP : 32 / 8944
離線
你的程式太長了 , 一時之間也看不太完整 , 不過你可以利用DEBUG的方式(ICD2 OR ICE) , 看看I2C是不是真的有收到ADDRESS , 如果連ADDR都沒收到 , 何來的ACK呢?
另外 , 請注意硬體是否有接PULL-HIGH的電阻 , 還有ADDR的有效位元是A7~A1 , 以你的設定而言 , SSPADD = 0X0C , 所以有效的位址資料應該是0X0C(W) OR 0X0D(R) ,

2004/07/23 07:14
轉換PDF檔 列印


Re: [問題]PIC16F716的燒錄問題
高級會員
註冊日期:
2004/06/15 10:18
文章: 97
等級: 8; EXP: 84
HP : 0 / 196
MP : 32 / 8944
離線
力浦的PICSTART是PIC專用的燒錄器 , 我想MICROCHIP出的IC應該都能燒吧!大部份只要更新FIRMWARE就可以了 , 可以先找力浦問一下支援的版本 , 至於更新的動作 , 代理商或力浦自己都可以幫忙吧!

2004/07/23 06:43
轉換PDF檔 列印


PIC16F818 I2C 問題
新會員
註冊日期:
2004/07/22 18:15
所屬群組:
註冊會員
文章: 1
等級: 1; EXP: 0
HP : 0 / 0
MP : 0 / 0
離線
各位先進,小弟目前使用PIC16F818,當作SLAVE,利用51去讀PIC的資料,可是很奇怪,當我送出ADDRESS後,PIC並沒有回應ACK,這是啥原因?是我ADDRESS的設定錯了嗎?請指教,謝謝!
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program


ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register


; isr code can go here or be located as a call subroutine elsewhere
banksel SSPSTAT
btfsc SSPSTAT,3
call Start_condition
btfsc SSPSTAT,4
call Start_stop

banksel PIR1
btfss PIR1,SSPIF ; Is this a SSP interrupt?
goto endint ; No, just trap here.
call ISR ; Yes, service SSP interrupt.
endint
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt


main
call SetupSlaveI2C
banksel PORTB
bsf PORTB,2
bsf PORTB,3
mainloop
clrwdt
goto mainloop


; remaining code goes here

;-------------------------------------------------------------------------------------------------
SetupSlaveI2C
;-------------------------------------------------------------------------------------------------
bcf STATUS,RP0

movlw B'00000011'
banksel PCON
movwf PCON

movlw B'00110110' ;I2C SLAVE, 7-BIT ADDRESS
banksel SSPCON
movwf SSPCON
banksel PIR1
clrf PIR1 ;CLEAR SSPIF
;
banksel STATUS
bsf STATUS,RP0
movlw H'12' ;I2C ADDRESS, 可以是其它值
banksel SSPADD
movwf SSPADD
;
movlw B'11000000' ;GIE, PEIE = 1
banksel INTCON
movwf INTCON
;
movlw B'00001000' ;SSPIE = 1
banksel PIE1
movwf PIE1
;
banksel OPTION_REG
bcf OPTION_REG,NOT_RBPU
banksel PORTB
clrf PORTB
movlw B'00010010' ;將SCL及SDA腳的TRIS值設為1
banksel TRISB
movwf TRISB
;
return
;-------------------------------------------------------------------------------------------------
ISR
;-------------------------------------------------------------------------------------------------
bsf STATUS,RP0
;
btfss SSPSTAT,BF ;使用 BF 來分辨READ 或 WRITE
goto WAS_READ
;-------------------------------------------------------------------------------------------------
WAS_WRITE
;-------------------------------------------------------------------------------------------------
btfsc SSPSTAT,D ;再使用 D 來分辨 DATA 或ADDRESS
goto WAS_DATA
;-------------------------------------------------------------------------------------------------
WAS_ADDRESS
;-------------------------------------------------------------------------------------------------
bcf STATUS,RP0 ;因為之前的SSPSTAT是位於BANK1,
; ;所以切為BANK0比較好做事
;....
;.... ;在此做收到address時要做的事。
; ;也許是重置接收字串的指位器。
;
;-------------------------------------------------------------------------------------------------
WAS_DATA
;-------------------------------------------------------------------------------------------------
bcf STATUS,RP0
movfw SSPBUF ;利用讀取SSPBUF來清除BF旗標
;
; ;在此做收到address 或 data要做的事。
;
goto END_I2C_INT
;-------------------------------------------------------------------------------------------------
WAS_READ
;-------------------------------------------------------------------------------------------------
btfsc SSPSTAT,D
goto WAS_DATA1
;-------------------------------------------------------------------------------------------------
WAS_ADDRESS1
;-------------------------------------------------------------------------------------------------
bcf STATUS,RP0
movlw 0x90
; ;不論是收到address或data
; ;都要儘早填值到SSPBUF以供讀取
movwf SSPBUF ;因為SCL線會被拉低,直到
bsf SSPCON,CKP ;將CKP設為1才會將SCL線釋放
btfsc SSPCON,WCOL
bcf SSPCON,WCOL
;-------------------------------------------------------------------------------------------------
WAS_DATA1
;-------------------------------------------------------------------------------------------------
bcf STATUS,RP0
; ;
; ;
movwf SSPBUF
bsf SSPCON,CKP
;-------------------------------------------------------------------------------------------------
END_I2C_INT
;-------------------------------------------------------------------------------------------------
bcf PIR1,SSPIF ;一律要清除 SSPIF
return
;-------------------------------------------------------------------------------------------------
Start_condition
banksel PORTB
bcf PORTB,3
banksel SSPBUF
movf SSPBUF,W
return
Start_stop
banksel PORTB
bcf PORTB,2
return
; initialize eeprom locations

ORG 0x2100
DE 0x00, 0x01, 0x02, 0x03


END ; directive 'end of program'

2004/07/22 18:21
轉換PDF檔 列印


[問題]PIC16F716的燒錄問題
新會員
註冊日期:
2004/07/22 17:09
來自 ASEC-Taiwan
所屬群組:
註冊會員
文章: 5
等級: 1; EXP: 34
HP : 0 / 8
MP : 1 / 386
離線
請問PIC16F716是否可以使用PSTART(力浦)來燒錄呢?
還是軟體或韌體需要更新?

如果不行,可否推薦幾款燒錄器?
謝謝您的回應.

2004/07/22 17:11
轉換PDF檔 列印


Re: 10位數的十六進制轉十進制,是否有比較快的方法?
版主
註冊日期:
2004/04/28 12:58
所屬群組:
註冊會員
DISTI
文章: 338
等級: 17; EXP: 17
HP : 0 / 404
MP : 112 / 18602
離線
您用什麼方法呢?提出來才有得比較呀!

2004/07/22 15:21
轉換PDF檔 列印


Re: pic compiler 問題
新會員
註冊日期:
2004/06/16 09:54
所屬群組:
註冊會員
文章: 3
等級: 1; EXP: 10
HP : 0 / 2
MP : 1 / 123
離線
picc c16可以到http://www.htsoft.com/products/picccompiler.php 注冊後拿到21天試用版,再想辦法延長使用期,方法自己想,或到大陸較不怕死的網站找破x版,但版本較舊.

2004/07/22 10:36
轉換PDF檔 列印


Re: 購買dsPIC30F6010
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14926
等級: 73; EXP: 71
HP : 1090 / 1817
MP : 4975 / 83610
離線
The dsPIC30F6010 has been mass productions, you can contact with Microchip's distributor for the sample requests. if you got the answer is not available yet please contact with Microchip's sales and let us know your problem.

2004/07/22 10:06
轉換PDF檔 列印


Re: 16F與18F程式轉碼問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14926
等級: 73; EXP: 71
HP : 1090 / 1817
MP : 4975 / 83610
離線
用組合語言,配合18F專用的查表指令的寫法,可以從右方「教材及講義」中的W400教材中找到。

2004/07/22 09:57
轉換PDF檔 列印


Re: 16F與18F程式轉碼問題
版主
註冊日期:
2004/04/28 12:58
所屬群組:
註冊會員
DISTI
文章: 338
等級: 17; EXP: 17
HP : 0 / 404
MP : 112 / 18602
離線
原來RETLW的查表法還是可以用,但是......
PIC18的PC單位是BYTE,而程式每執行一行,PC會加2,所以,程式要怎麼改,自己想一想吧!
在我們美國的網站,應該可以找到16F轉18F的注意事項的應用範例。

2004/07/22 09:55
轉換PDF檔 列印


Re: 16F與18F程式轉碼問題
高級會員
註冊日期:
2004/06/30 08:59
所屬群組:
註冊會員
文章: 148
等級: 11; EXP: 22
HP : 0 / 255
MP : 49 / 11630
離線
要用 TBLRD,還得先設定 TBLPTRU, TBLPTRH, TBLPTRL

#define TBLPTRU *(int8 *)(0xFF8) // Addr_Upper
#define TBLPTRH *(int8 *)(0xFF7) // Addr_High
#define TBLPTRL *(int8 *)(0xFF6) // Addr_Low
#define TABLAT *(int8 *)(0xFF5) // Data_Byte

data 從 TABLAT 讀取,有夠煩的,看 data sheet 的 5.4 節吧

別忘了要設定這個喔
BCF 0xFA6, 6 // EECON1, CFGS, select Prog_EE and Data_EE

用 C 寫程式,就可以減少許多這種轉碼的問題,呵呵
看看 C 編譯出來的組語,也可以學會如何轉碼。

建議:去 CCS 下載一套免費的 demo 版玩玩,也可以解決你的問題
http://www.ccsinfo.com/demo.shtml

2004/07/21 23:56
轉換PDF檔 列印



« 1 ... 7170 7171 7172 (7173) 7174 7175 7176 ... 7226 »




搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project