Re: 關於12f629 GPIO3定義之問題
|
||||
---|---|---|---|---|
資深會員
|
去看 datasheet figure 3-3 gpio 3 的架構
發表於: 2009/7/24 19:36
|
|||
|
Re: 關於12f629 GPIO3定義之問題
|
||||
---|---|---|---|---|
新會員
|
再補充一下,因來源的信號不是5v就是空接
發表於: 2009/7/24 17:29
|
|||
|
Re: 關於12f629 GPIO3定義之問題
|
||||
---|---|---|---|---|
新會員
|
參照:
感謝您的指教,是否方便給我詳細一點的說明呢,因為我是個初學者,觀念不清楚才會上來希望大家指教 gpio3浮接時對應位準是high嗎,那如何去讀無訊號時的位準,是一定要透過電路還是透過程式本身即可達成呢?
發表於: 2009/7/24 17:27
|
|||
|
Re: 關於12f629 GPIO3定義之問題
|
||||
---|---|---|---|---|
新會員
|
參照:
我有試過接gpio3接一個110歐母的電阻至接地,不過也是沒用,會不會是Pull Low值太大
發表於: 2009/7/24 17:17
|
|||
|
Re: 關於12f629 GPIO3定義之問題
|
||||
---|---|---|---|---|
資深會員
|
如果你不用 gpio3 ,那你可以將 wpu 打開,這樣就不會有空接的問題
發表於: 2009/7/24 16:29
|
|||
|
Re: 關於12f629 GPIO3定義之問題
|
||||
---|---|---|---|---|
版主
|
"我的疑問是 空接不是等於0V嗎"
問你一下 CMOS 的輸入不接時應判定何種準位電壓? 有聽過 CMOS 輸入端可以浮接嗎? 這是基本觀念,需要怒清楚的。
發表於: 2009/7/24 16:08
|
|||
|
Re: 關於12f629 GPIO3定義之問題
|
||||
---|---|---|---|---|
資深會員
|
1.空接不等於0V
2.你需要在GPIO3接一個Pull Low電阻。
發表於: 2009/7/24 15:53
|
|||
|
關於12f629 GPIO3定義之問題
|
||||
---|---|---|---|---|
新會員
|
請問各位,我寫了一個以下的程式,當GPIO3為5V時執行 START
後會執行一連串程序,直到GPIO3為0V時進行SHUTDOWN,後再跳到LOOP1等待電壓為5V再度執行START,但問題來了,我如果用將GPIO3直接接地,整個程序會如我所要的進行,但GPIO3如果不接就是只把線拔起不接 0V或5V,LOOP1那一段程序就會被跳過,直接往下執行 我的疑問是 空接不是等於0V嗎,為何空接會導致文中LOOP1那一段會被當成有輸入而執行呢(雖然加個RELAY可解決但我的電路空間不足) ; list directive to define processor list p=12f629 ; processor specific variable definitions #include <p12f629.inc> __CONFIG _CP_OFF & _MCLRE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_OFF & _CPD_OFF &_PWRTE_OFF #DEFINE LED GPIO,0 #DEFINE LED_IO TRISIO,0 #DEFINE LED1 GPIO,1 #DEFINE LED_IO_1 TRISIO,1 #DEFINE LED2 GPIO,2 #DEFINE LED_IO_2 TRISIO,2 #DEFINE LED3 GPIO,3 #DEFINE LED_IO_3 TRISIO,3 #DEFINE LED4 GPIO,4 #DEFINE LED_IO_4 TRISIO,4 #DEFINE LED5 GPIO,5 #DEFINE LED_IO_5 TRISIO,5 CNT0 EQU 20H CNT1 EQU 21H CNT2 EQU 22H ;--------------------------------- ORG 0000H MOVLW 07H MOVWF CMCON ; TURN-OFF analog comparator BSF STATUS,RP0 ; select bank 1 CALL 3FFH ; Load cal value MOVWF OSCCAL BCF LED_IO ; set as output BCF LED_IO_1 ; set as output BCF LED_IO_2 ; set as output ; BCF LED_IO_3 ; set as output BCF LED_IO_4 ; set as output BCF LED_IO_5 ; set as output BCF STATUS,RP0 ; select bank 0 BCF LED BCF LED1 BCF LED2 BCF LED4 BCF LED5 ;ALL LED LIGHTOUT LOOP1: btfsc GPIO,3 GOTO START ;IF GP3=5V GOTO START GOTO LOOP1 START: CALL DELAY5SEC BSF LED ;LED 亮 開電源 CALL DELAY5SEC BCF LED ;LED 滅 CALL DELAY CALL DELAY CALL DELAY BSF LED1 ;LED 亮 向左 CALL DELAY1SEC BCF LED1 ;LED 滅 CALL DELAY1SEC BSF LED2 ;LED 亮 按進入錄製 CALL DELAY BCF LED2 ;LED 滅 CALL DELAY1SEC CALL DELAY1SEC CALL DELAY1SEC BSF LED2 ;LED 亮 開使錄制 CALL DELAY BCF LED2 ;LED 滅 LOOP2: btfsc GPIO,3 GOTO LOOP2 ;IF GP3=5V GOTO LOOP1 SHUTDOWN:BCF LED ;LED滅 IF GP3=0V GOTO SHUTDOWN BSF LED ;LED亮 CALL DELAY5SEC BCF LED ;LED滅 GOTO START ;--------------------------------- ; DELAY 0.5 SECONDS ROUTINE ;--------------------------------- DELAY: MOVLW 03H MOVWF CNT0 MOVLW 18H MOVWF CNT1 MOVLW 02H MOVWF CNT2 Delay_0 DECFSZ CNT0, f GOTO $+2 DECFSZ CNT1, f GOTO $+2 DECFSZ CNT2, f GOTO Delay_0 ;6 cycles GOTO $+1 ;delay 2 cycles GOTO $+1 ;delay 2 cycles GOTO $+1 ;delay 2 cycles ;4 cycles (including call) RETURN DELAY5SEC: call DELAY call DELAY call DELAY call DELAY call DELAY call DELAY call DELAY call DELAY call DELAY call DELAY return DELAY1SEC: CALL DELAY CALL DELAY RETURN END
發表於: 2009/7/24 15:48
|
|||
|