Re: 如果要利用FSR和IND將值放入位址100H後面要怎麼處理呢?
|
||||
---|---|---|---|---|
初級會員
|
真是太感謝您囉!
謝謝版主大大!
發表於: 2007/4/27 15:27
|
|||
|
如果要利用FSR和IND將值放入位址100H後面要怎麼處理呢?
|
||||
---|---|---|---|---|
初級會員
|
最近在開發程式時發生一個問題,就是我的資料記憶體可以到1F0H,但是每個address是8bit,現在我有需要必須利用FSR和IND將資料一個個搬入100H之後的16個位址,但是當我在寫程式的時候發現,當我將FSR= 100H時,實際上程式執行是FSR=00H,這是合理的,因為每一個address是8bit,但是我看程式執行register視窗可以接受IND[000],意思是說FSR應該是可以放入address = 100H的呀!但是我不知道應該要怎麼處理這樣的情況呢?
IND是indirection address FSR是file select register IND[FSR]中,IND是我要放入FSR這個值的位址數值,例如我在位址100H裡面要放入80H這個數值。 IND[100]=80H 不知道有沒有人可以教我程式要怎麼寫呢? 謝謝!
發表於: 2007/4/27 12:55
|
|||
|
Re: 請教開發單晶片程式時這樣的架構可以嗎?
|
||||
---|---|---|---|---|
初級會員
|
謝謝您的建議,可是如果INTERRUPT不用GOTO MAINLOOP的話,那怎麼進入MAINLOOP這個區塊程式呢?這部份我就不太懂了!可以麻煩您再說詳細一點嗎?
謝謝 ORG 0 GOTO MAIN ORG 0x004 INTERRUPT: PUSHR 接下來是判斷中斷,並執行中斷中的程式 如ADC、按鍵、時間 ///GOTO MAINLOOP ---> 會出問題 POPR RETFIE ------------------------------------------------- MAIN: 系統的初始化 ///GOTO MAINLOOP ---> 可以不用 ------------------------------------------------- MAINLOOP: 相關計算程式,優先權比較不高的計算, 如訊號轉換計算等等 GOTO MAINLOOP
發表於: 2006/11/3 9:14
|
|||
|
請教開發單晶片程式時這樣的架構可以嗎?
|
||||
---|---|---|---|---|
初級會員
|
最近在規劃一顆8-bit uC用組合語言來寫程式,但是因為是新手所以不確定自己規劃的這樣架構是否適宜,又不知道應該要怎麼尋找相關資料,所以想要請問各位先進
我的程式流程是,一開始先做初始化動作,當有任何中斷觸發時,則隨即執行INTERRUPT區塊程式碼,INTERRUPT區塊根據被中斷的項目來執行,而程式在無中斷時,都會進入MAINLOOP程式之中,根據所設的旗標來執行相關的計算。而我旗標開啟則是當INTERRUPT執行後則會開啟相關的旗標,INTERRUPT執行所得到的資料,如ADC資料,則會在MAINLOOP中做相關的處理轉換。不知道這樣的架構是否完善,會不會在執行上有所不妥。還有我應該要看哪些相關的書籍或是資料可以讓我更加了解uC開發的相關架構方法呢?謝謝囉! 架構規劃如下 ORG 0 GOTO MAIN INTERRUPT: 接下來是判斷中斷,並執行中斷中的程式 如ADC、按鍵、時間 GOTO MAINLOOP ------------------------------------------------- MAIN: 系統的初始化 GOTO MAINLOOP ------------------------------------------------- MAINLOOP: 相關計算程式,優先權比較不高的計算, 如訊號轉換計算等等 GOTO MAINLOOP
發表於: 2006/11/1 9:36
|
|||
|
Re: assembly如何寫出手錶時間的設定方式
|
||||
---|---|---|---|---|
初級會員
|
您好,我已經寫出了設定的方法,我寫的方式是,
我先將已經設定好的數值,例如:0457H(1111b),分別和0FH與F0H做AND而分別取出各個位數值,再利用按鍵對各個數字做遞增動作,如果是我要的數字就直接按確認鍵進入下一個數值的設定,最後設定完成就直接跳出。 但是目前遇到了一個問題,就是當四位數全部設定完成後,我要怎麼將LCD上的數字轉成有意義的HEX值呢?例如,我利用手錶設定方式設定出,1234,這四個數字,但是我必須要將這四個數字轉成04D2H存入High Byte&Low Byte變數之中,接下來我應該要怎麼處理呢? 謝謝
發表於: 2006/6/14 9:45
|
|||
|
assembly如何寫出手錶時間的設定方式
|
||||
---|---|---|---|---|
初級會員
|
想要請問各位先進,如果想要用assembly寫出如設定手錶時間,方法是一按下設定鍵,就先跳到小時的設定,此時小時的位數會閃動,按下按鍵則可以遞增小時的數字,設定完成按下確認鍵後直接跳到下一個分鐘設定,此時分鐘也會開始閃動,使用者就可以開始作設定。這樣的設定方式我應該要怎麼寫呢?請大家可以教教我,謝謝!
發表於: 2006/5/8 9:05
|
|||
|
要如何用組合語言來判斷量測數值的容許誤差範圍
|
||||
---|---|---|---|---|
初級會員
|
想要請問,如果我量測一個施力,可是要容許她可以有正負2H的誤差範圍,如果在這誤差範圍內,視為施力相同,則當幾分鐘後則自動進入休眠模式。但是我要怎麼用組合語言寫這樣的程式呢?因為施力相減可能為正可能會為負值,我要怎麼判斷呢?我一開始這樣寫,可是還是有所錯誤!所以不知道應該要如何修改呢?
movfw AL_prev subwf AL, 0 sublw 02H btfss STATUS, C call clrf_time movfw AL_prev subwf AL, 0 sublw 0FEH btfss STATUS, C call clrf_time 謝謝!
發表於: 2005/10/31 10:33
|
|||
|
請問數值給定的問題
|
||||
---|---|---|---|---|
初級會員
|
請問各位,我的LCD上的一個位數是由一個位址的數值來決定,但是這個位數上其中第0個bit控制著單位,但是當我要給定一個數字0時,我是利用定義方式來寫的,就是當我數值為0時,我就定義
LCD_ch_0 equ 11011100B 但是當我將LCD mapping成數字0時,這時候如果單位本身之前就已經是On的狀態,即第0個bit為1。此時,會因為我要寫0這個數字,而將單位符號燈號給off掉。 我要如何去做check動作,但又可以完整的表現出0和單位燈號呢? 不知道我這樣的描述是不是夠清楚。 謝謝
發表於: 2005/7/1 10:08
|
|||
|
關於I2C傳輸問題
|
||||
---|---|---|---|---|
初級會員
|
請問各位先進,當我在做I2C傳輸時,我Master端每100ms讀取Slave端五筆有順序排列資料。雖然I2C在做傳輸,但是這些資料還是會因為其他ISR的起來,而隨時改變資料數值。
但是當我在做傳輸中,會發現這五筆資料會傳輸錯誤,出現FFH的數值,或是順序亂掉的情況,更慘的是會發生傳輸失敗而無法救治。 而研究結果發現,似乎CKP會因為被拉下而造成傳輸失敗,所以想要請問各位有做過I2C傳輸應用,能告訴我到底我在做傳輸時,應該要注意哪些地方呢? 而我希望的是I2C傳輸能夠沒有任何資料錯誤或是失敗情況發生,因為我一做傳輸時,可能需要的是幾天的時間來Get一連串的數據資料,進而處理這些資料。 謝謝
發表於: 2005/5/10 10:33
|
|||
|