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




Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#11
初級會員
初級會員


謝謝shpehg及Ryang板主的回覆

目前正在把程式精簡到可以放在程式記憶體page0(0005h~07ffh)中,
並且讓程式可以正常執行,
然後再將時間顯示程式段放入記憶體page1(0800h~0fffh)中,再測看看結果如何!

初步結果:
在程式記憶體page0(0005h~07ffh)中,程式可以正常執行
但將時間顯示程式段放入記憶體page1(0800h~0fffh)中,主程式還活著,時間顯示就停在00:08不動,
而且 00:08 的 8 還是從 1 就直接變 8 了,不是1,2,3...才到 8

努力找問題中...有結果再PO上來跟大家分享一下

發表於: 2009/11/24 17:56
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#12
初級會員
初級會員


謝謝Ryang板主的回覆
早上我有在中斷副程式加入儲存PCLATH的動作
不過結果還是一樣
我是這樣寫的
ISR
        banksel tempW
;select bank0
        movwf   tempW
        swapf   STATUS
,w
        movwf   tempStatus
        swapf   PCLATH
,w
        movwf   tempPCLATH

        banksel PIR1
        btfsc   PIR1
,TMR1IF
        call    Timer1Int

        banksel tempStatus
;select bank0
        swapf   tempPCLATH
,w
        movwf   PCLATH
        swapf   tempStatus
,w
        movwf   STATUS
        swapf   tempW
,f
        swapf   tempW
,w
 
        retfie


我有試著把程式縮短,例如將一些比較不重要沒用到的部份註解掉,
結果時間顯示從 00:00 動兩下,就不動了
但程式還活著,應我有在無窮迴圈加入LED的亮滅控制,只要看LED就知道主程式部份是否還在執行,

如果將程式縮到1個page以內,例如縮到page0(0005h~07ffh)以內,
時間顯示從 00:00 ~23:59 一直循環都很正常,
只要把時間顯示的程式碼移到page1(0800h~0fffh)就會出現0顯示完馬上變為8,1~9 也一樣的情形

感覺好像是程式記憶體亂掉

趕快來去看範例程式
一有結果再PO上來跟大家分享一下

再次謝謝shpehg及Ryang板主的回覆

發表於: 2009/11/24 13:46
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#13
初級會員
初級會員


謝謝shpehg的回覆

中斷副程式中我沒有存到PCLATH,
等一下改來試試

從板子上拆下來的震盪器都有問題
我再來去買一些新的試試看
有結果再PO上來跟大家分享一下

發表於: 2009/11/24 8:30
頂部


使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#14
初級會員
初級會員


目前使用PIC16F946再開發產品遇到了一些問題,提出來請大家指點一下,
Configuration設定為:
Oscillator               
-> INTOSCIO
Watchdog Timer           
-> Off
Power Up Timer           
-> Off
MCLR Pin 
Function Select -> Normal Function
Code Protect             -> Off
Data EE Read Protect     
-> Off
Brown Out Detect         
-> BOD EnableSBODEN Disable
Internal
-External Switch Over -> Enable
Fail Clock Monitor Enable 
-> Enable

系統時脈使用8MHz內部震盪器
中斷只使用Timer1中斷
外接32768Hz石英震盪器給Timer1當時鐘計時使用
有使用LCD顯示時間跟一些ICON

目前遇到2個問題:
1. 程式記憶體會使用超過page0
(0000h~07ffh)的空間而進入
    page1
(0800h~0fffh)的空間,
    剛開始沒注意到程式已超過page0,編譯完後燒到MCU後,
    MCU無法動作, 
:-( 

    
後來找了很多資料來看,就將部份程式段移往page1,
    在使用該程式段時就加入pagesel指令,
    例如:pagesel xxx
          call    xxx  
or goto xxx
    此時只在使用到該程式段之前加入pagesel,如上所示,
    呼叫或跳躍到該程式段返回後,並沒將page切回page0,
    此時將程式編譯完後燒到MCU後,MCU一開始動了一下子,
    就又沒動作了, 
:-? 

    
現在改為在使用到該程式段之前加入pagesel,
    程式返回後,馬上把page切回來,如下所示:
    其它指令                         
;       page0(0000h~07ffh)
    
pagesel xxx                      ;select page1(0800h~0fffh)
    
call    xxx or goto xxx          ;       page1(0800h~0fffh)
    
pagesel yyy                      ;select page0(0000h~07ffh)
    
繼續其它動作                     ;       page0(0000h~07ffh)
    
這樣將程式編譯完後燒到MCU後,MCU可以動作了,
    但使用到位於page1
(0800h~0fffh)的程式碼後,
    動作變的不正確, 
:-? 
    
例如我將LCD上顯示數字的程式段放在
    page1
(0800h~0fffh)
    但計時的程式段仍在page0
(0000h~07ffh)
    從計時的程式段裏去call顯示數字的程式段,
    此時顯示結果為0顯示完馬上變為8,接下來顯示1,
    1顯示完也馬上變為8,2
~9也都一樣,一顯示完就變為8,
    我所有的變數全部定義在bank0 21h
~64h,用equ定義,
    是否需要將放在page1
(0800h~0fffh)的程式段,
    會使用到的變數給放到bank1? 
:-? 

2. MCU 每次 power off 再 power on ,程式已開始動作,
    但時鐘的顯示都會停在 00
:00 約一分鐘才會開始動作,
    時鐘顯示正常動作後,用 reset 腳 reset MCU ,
    此時時鐘顯示可正常動作,但如power off 再 power on ,
    時鐘的顯示又會停在 00
:00 約一分鐘才會開始動作,
    我有量測32768Hz石英震盪器的訊號,有32.76KHz
    但只在 1V 之內震盪,是不是要再 5V 內震盪才算正常?
    還是有其他設定需要注意?


以上兩點問題請大家指導一下,謝謝

發表於: 2009/11/23 11:10

Edited by r620 on 2009年11月23日 13:36:52
頂部


Re: 請問PIC16F946的系統時脈震盪器接腳跟Timer1的外部時脈接腳都設在同一組接腳,那這組接腳如果用作系統時脈,PIC16F946還有辦法可以實現即時時鐘(用作時間顯示)的功能嗎?
#15
初級會員
初級會員


感謝Ryang板主提供的資料跟說明

趕快來去寫程式,有不明白的地方再來跟大家請教

謝謝大家的回覆

發表於: 2009/10/22 10:35
頂部


Re: 請問PIC16F946的系統時脈震盪器接腳跟Timer1的外部時脈接腳都設在同一組接腳,那這組接腳如果用作系統時脈,PIC16F946還有辦法可以實現即時時鐘(用作時間顯示)的功能嗎?
#16
初級會員
初級會員


哇 感謝Ryang板主跟Eigen先進的精采答覆

現在處理時間就可以更準確了

Ryang板主可以將 C & ASM 的範例都mail給我參考嗎?
因為 C 很久沒寫了,該忘的都忘了
現在都用 Assembly 在寫,
但是公司方面有考慮將來要用 C 來寫,C 的開發速度比較快,
所以請Ryang板主 C & ASM 的範例都mail給我吧

還有請問一下 Mechtronics EVM Board 的價格是多少?
如果在2009嵌入式設計論壇中購買有打折嗎?
也準備要報名參加設計論壇了,來去吸收一些知識

還有PIC16F946 Pin39 -> T1OSI
        Pin40 -> T1OSO
        Pin60 -> T1CKI
32.768KHz 的 crystal 接到 T1OSI & T1OSO
那 Pin60 -> T1CKI 這隻腳可以忽略當成一般 I/O 嗎?

以上再請板主跟各位先進指點一下,謝謝

還有板主,我的mail是 riye@riye.com.tw
再請Ryang板主mail C & ASM 的範例給我參考一下,謝謝

發表於: 2009/10/21 18:59
頂部


Re: 請問PIC16F946的系統時脈震盪器接腳跟Timer1的外部時脈接腳都設在同一組接腳,那這組接腳如果用作系統時脈,PIC16F946還有辦法可以實現即時時鐘(用作時間顯示)的功能嗎?
#17
初級會員
初級會員


謝謝Ryang板主的回覆

選擇PIC16F946是因為要驅動LCD面板跟一些LED、Relay
還要接收一些週邊的信號(按鈕、AD、脈波計數等),
LCD的規格為 HTN/NEGATIVE 1/4 DUTY 1/3 BIAS
有用到4個COM點,14個SEG點,
全部功能使用到的接腳接近40Pin,
所以選用PIC16F946,
目前規劃 I/O 大概會用掉 18 pin ,
驅動LCD部份會用掉 18 pin ,
timer 預計會用到 2 ~ 3 組(有做時鐘功能會用掉 1 組 timer),
PWM 1 組,
A/D 1 組,
會用到 INT0 、RB change等中斷,
單晶片會進入省電模式,
會用到 EEPROM 儲存資料,
未來會用到 類似 RS232 功能跟 PC 端做連線讀取資料。

LCD上會顯示時間,跟一些自訂圖示,所以需要即時時鐘功能
當初不知道有內建震盪功能,所以規劃腳位的時候嚇了一跳,
看到系統時脈震盪器接腳跟Timer1的外部時脈接腳都設在同一組接腳,還好是虛驚一場

請教一些問題
如果系統時脈使用內部震盪器,
Timer1使用外部32.768KHz震盪器,
1. T1CON暫存器是不是設為00001110就可以了
2. Timer1預除器設為 1:1(00),是不是計時的時間就沒有被延長?1:2(01),是不是計時的時間就被延長2倍
3. PIC16F946的T1CKI跟T1OSI是不同接腳,照問題 1. 的設定,T1CKI這支接腳有什麼要注意的地方嗎?

以上問題還請板主跟各位先進指點一下,謝謝

發表於: 2009/10/21 14:02
頂部


Re: 請問PIC16F946的系統時脈震盪器接腳跟Timer1的外部時脈接腳都設在同一組接腳,那這組接腳如果用作系統時脈,PIC16F946還有辦法可以實現即時時鐘(用作時間顯示)的功能嗎?
#18
初級會員
初級會員


原來還有內部震盪...謝謝Eigen先進的提醒
昨天還找了很多chip發現只有PIC16F1946可以代...
可是PIC16F1946好像還沒上市...
今天看到有內部震盪...還好昨天只是虛驚一場

感謝Eigen的提醒

發表於: 2009/10/21 8:30
頂部


請問PIC16F946的系統時脈震盪器接腳跟Timer1的外部時脈接腳都設在同一組接腳,那這組接腳如果用作系統時脈,PIC16F946還有辦法可以實現即時時鐘(用作時間顯示)的功能嗎?
#19
初級會員
初級會員


請問PIC16F946的系統時脈震盪器接腳跟Timer1的外部時脈接腳都設在同一組接腳,
那這組接腳如果用作系統時脈,
PIC16F946還有辦法可以實現即時時鐘(用作時間顯示)的功能嗎?
一般不是都有2組時脈接腳,
1組系統時脈震盪器接腳,
1組Timer1的外部時脈接腳,
系統時脈震盪器接腳,用作產生系統時脈,
而Timer1的外部時脈接腳,單獨用作即時時鐘時脈,以提高時鐘準確度,
但是PIC16F946把2組時脈接腳做在一起,
是不是這組接腳同時只能當系統時脈用或當Timer1的外部時脈用,這樣即時時鐘要怎麼實現,是不是有什麼方法?

還請各位先進提點一下,謝謝!

發表於: 2009/10/20 14:47
頂部


Re: bsf PIE1,ADIE 在MPLAB IDE的Program Memory視窗下卻變成 bsf PIR1, 0x6 請問這樣正常嗎?
#20
初級會員
初級會員


原來如此 ^_^
我還真的有在擔心不曉得哪裏出問題咧 ^^

謝謝aaron.chen先進的回答,謝謝!

發表於: 2005/6/29 18:27
頂部



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

教育訓練中心

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