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

論壇索引


Board index » All Posts (genkigon)




Re: pic16F685的問題
#1
初級會員
初級會員


只要是A/D功能的腳全部都不行,包含PORTC,如今只有PORTB可以拿來做輸入判斷別。

經測試後,發現PORTA的腳全部無法使用,我將程式改成讓PORTA全輸出HIGH或者是LOW電位,實際上的腳位皆無變化。

例如我量到第0.1.4腳皆為LOW,而第2.5腳都一直是HIGH。

目前的做法是捨棄PORTA不用,改外接一個7447的IC做轉換,如此腳位是夠用了。

只是不知道是沒有設好,還是PORTA的部份壞了....

發表於: 2008/11/5 13:46
頂部


Re: 請問PID程式問題
#2
初級會員
初級會員


就算大大用浮點數去算,可是輸出給PWM時仍然是整數的值啊~~~

PWM有輸出浮點數的嗎?~~~

發表於: 2008/11/4 19:06
頂部


Re: pic16F685的問題
#3
初級會員
初級會員


我有試過對ADC的暫存器做設置,在設完後有正常動作過,但不久就又出現無法讀取的問題。

我的設置為PORTA全拿來做輸入,PORTB和PORTC則為輸出
所以ADC功能disable,且全部設為數位輸出入腳。
banksel TRISA
movlw b'11111111'
movwf TRISA
movlw b'00000000'
movwf TRISB
movlw b'00000000'
movwf TRISC
banksel PORTA
movlw b'00000000'
movwf PORTB
movlw b'00000000'
movwf PORTC

; set ADC all disable
banksel ADCON0
clrf ADCON0
banksel ANSEL
clrf ANSEL
banksel ANSELH
clrf ANSELH

而判斷輸入的程式段為
bottom_state:
btfsc PORTA,1
goto bottom_exit
movlw 0x09
return
bottom_exit:
movlw 0x02

之後有把W的內容輸出給7段,照上面程式,如果PORTA的第1腳為0,則輸出2;如果為1的話輸出9。

從模擬的時候去看暫存器,都有符合我的設定,但不知道為什麼無法做In的判斷。

難道是我的設置有問題嗎?

發表於: 2008/11/4 19:03
頂部


Re: 請問PID程式問題
#4
初級會員
初級會員


last_error = error;
error_difference = error - last_error;//這週期的error減上週期的error

可愛的大大,你這裡有點問題,你一進來就把ERROR存起來,那下一行的ERROR_DEFFERENCE不是0那才奇怪吧...

正常應該是要把last_error = error; 放在void kd_set(void){}的最後一行才對。

如果你問那一開始的last_error不知道是多少,可愛的大大,可以設0沒關係。

I部份則是累積的值,也就是從開始做控制的時間點開始算,到你現在的誤差。

希望以上對您有幫助。

發表於: 2008/11/3 15:47
頂部


Re: pic16F685的問題
#5
初級會員
初級會員


感謝2位大大的回覆

RB6我是經實驗後確定不能用,至於切回BANK,我的程式經初始化完後就沒切BANK,所以應該不會RB7可以用,RB6不能用吧。

目前還沒試I/O的DISABLE,因為不知道組語的寫法,所以沒有注意,這點說聲抱歉~~~

等試過後小的會再回來回報結果。

發表於: 2008/11/3 14:50
頂部


Re: pic16F685的問題
#6
初級會員
初級會員


指標消失指的是當模擬時按下F7會有一個綠色的指標,顯示程式執行到何處,就是這個綠色的指標

第2點已解決

後來再試,把查表的部份移動到中斷程式後面就可以了。

======================================

新的問題,我想把PORTA的0~2拿來做輸入腳,判斷按鍵,於是寫下下面程式:
start:
banksel TRISA
movlw b'11111111'
movwf TRISA
.
.
.
main:
call bottom_state
call LDTAB
movwf PORTC
.
.
.
bottom_state:
btfsc PORTA,1
goto bottom_exit
movlw 0x09
return
bottom_exit:
movlw 0x02
return
.
.
.

目的是想要依PORTA的第1腳來判斷有沒有被按下,以7段來觀察,有被按下則改變輸出。

問題是,當我把PORTA.1的腳接HIGH或LOW,都不會使7段變動,後來試了第0腳、第2腳,PORTB的第4~6腳皆無法動作,只有PORTB的第7腳會有反應,可是我想要的是讓PORTA的0和1腳做輸入...

發表於: 2008/10/30 18:45
頂部


Re: pic16F685的問題
#7
初級會員
初級會員


感謝大大們的回應,我把程式改成ryang大的寫法,然後出現2個問題

1.實際動作無預期,故用模擬方法去除錯,發現在call LATAB這裡時,它會進入LATAB去,可是執行addwf PCL,F後指標就消失了。
我把start中call之前改成
movlw 0x05
所以應該會回傳0x2c,只是指標消失。

2.我有以下訊息:
Message[305] C:\DSPIC\685FIRST\MAIN.ASM 95 : Using default destination of 1 (file).

有問題的程式
incf shift
我是要在中斷中對shift做累加的動作,後來發現,只要有incf的都會有這樣的訊息,可否問一下是為什麼?

再次麻煩各位大大了。

發表於: 2008/10/30 14:21
頂部


pic16F685的問題
#8
初級會員
初級會員


我的問題
MPLINK 4.21, Linker
Copyright (c) 2008 Microchip Technology Inc.
Error - section '.org_2' can not fit the absolute section. Section '.org_2' start=0x00000050, length=0x00000014
Errors : 1

用的是PIC16F685
看過之前的文章,修改LKR文件可以,可是不知道怎麼改

有試著把page0和page1的START和END做變動,但是還是會得到上面的問題,麻煩大大們指導一下,感謝!

LKR文件(16F685.lkr)

LIBPATH .
CODEPAGE NAME=page0 START=0x0 END=0x7FF
CODEPAGE NAME=page1 START=0x800 END=0xFFF
CODEPAGE NAME=.idlocs START=0x2000 END=0x2003 PROTECTED
CODEPAGE NAME=.config START=0x2007 END=0x2007 PROTECTED
CODEPAGE NAME=.calib START=0x2008 END=0x2008 PROTECTED
CODEPAGE NAME=eedata START=0x2100 END=0x21FF PROTECTED

我的程式
org 0x00
goto start
org 0x04
goto timer_isr
start:
.
.
.
main:
movfw count_tb
call LDTAB
movwf PORTC
goto main
timer_isr:
.
.
.
retfie

LDTAB movwf PC
org 0x0050
retlw 0xa0 ;0
retlw 0xbb ;1
retlw 0x62 ;2
retlw 0x2a ;3
retlw 0x39 ;4
retlw 0x2c ;5
retlw 0x24 ;6
retlw 0xb8 ;7
retlw 0x20 ;8
retlw 0x28 ;9
END

最後是查表的東西

發表於: 2008/10/29 23:01
頂部


Re: icd2 無法連上PIC
#9
初級會員
初級會員


找到BUG了,應該是MCU出了問題,因為我換了一個新的上去就沒問題了~~~

我還是有接地電容,因為想說能滅少一些問題就減少一些。

發表於: 2008/10/15 16:50
頂部


Re: icd2 無法連上PIC
#10
初級會員
初級會員


可是我的MCLR也當作RESET腳來用,可以不用接電容嗎?

發表於: 2008/10/15 10:51
頂部



(1) 2 3 »



:::

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

教育訓練中心

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