Re: 如果程式太大到會超過RAM時,應該要注意哪些地方呢?
|
||||
---|---|---|---|---|
版主
|
看起來是應該是指ROM不夠大的問題,應該不是RAM不夠用吧!
當然公用/共用的程式當然可以寫成副程式還呼叫,主要還是要從你的架構上去檢討是否可以減少程式碼。 如果實在塞不下那就換一個 ROM size 大一點的 PIC 吧!
發表於: 2005/4/1 14:10
|
|||
|
Re: I2C master mode 的 clock 為什麼不會改變
|
||||
---|---|---|---|---|
版主
|
MOVLW .56 ; SSPM3:SSPM0(3-0)=1000, I2C master mode,clock=fosc/(4*(SSPADD+1))
以上程式會讓你的I2C 設為 slave mode 當然就無法控制 SCL 的速率。 還有 Bank 切換也檢查一下,感覺怪怪的。 附上一段 I2C Master 設定的程式:
;
或可參考右邊的範例程式裡的第12項
發表於: 2005/4/1 13:55
|
|||
|
Re: 請問一下按鍵的問題
|
||||
---|---|---|---|---|
版主
|
Source Code 貼上來看看吧!
發表於: 2005/4/1 13:36
|
|||
|
Re: 請問一下按鍵的問題
|
||||
---|---|---|---|---|
資深會員
|
沒程式碼
無法知道正確原因 會不會是TIMER中斷?
發表於: 2005/4/1 13:10
|
|||
|
Re: I2C master mode 的 clock 為什麼不會改變
|
||||
---|---|---|---|---|
資深會員
|
這段程式應該沒問題
我想可能是你其他的程式有動到這幾個值 或是把SSPADD鎖住了 用ICD2除錯模式慢慢找吧...
發表於: 2005/4/1 13:07
|
|||
|
請問一下按鍵的問題
|
||||
---|---|---|---|---|
高級會員
|
我將一段取得PORTD的程式碼放在主程式中~~
用ICD2 DEBUGER 直接測試按鍵的情形都OK 但是如果我將這段取得PORTD的程式放再我的一個TIMER裡面的時候 當我按下任一鍵的時候~~~ICD2會自己STOP呢?? 我有東西沒注意到嗎??
發表於: 2005/4/1 10:24
|
|||
|
如果程式太大到會超過RAM時,應該要注意哪些地方呢?
|
||||
---|---|---|---|---|
初級會員
|
最近在開發新的系統,結果發現當程式越長越大時,竟然已經過要超過RAM的限制大小了。
所以想要請問各位先進,再寫程式時,我應該要注意哪些事情呢?才不會造成程式繁瑣的程式碼過多呢? 如果我將一些固定會用到的程式碼包成subfuntion來呼叫,和直接寫的程式碼,所佔的記憶體會一樣嗎? 謝謝
發表於: 2005/4/1 10:02
|
|||
|
Re: 關於 APP001 的問題....
|
||||
---|---|---|---|---|
初級會員
|
感謝版主大大的說明:
1.如果 DEMO 程式被洗掉,應不會有任何的關係,因為我們會重新裝上 新的專案程式 2.但是對於 "Timer 0 設定錯誤無法讓Timer0計數造成永久迴圈" 旳問題就比較奇怪了, 因為我並沒有修改原始程式,只是依 User's Guide 將該專案檔建立起來,並把相關檔案 加進來,應不致於會發生錯誤吧,還是在環境的設定上有問題? 以下概括的說明設定的環境: ==================================== 選擇 Configure>Configuration Bits Oscillator — EC-OS2 as RA6 • OSC Switch Enable — Disabled • Power Up Timer — Enabled • Brown Out Detect — Disabled • Watchdog Timer — Disabled • CCP2 Mux — RC1 • Low Voltage Programming — Disabled **(註1.) • Background Debug — Enabled (為什麼沒有這個選項設定) • Stack Overflow Reset — Disabled • disable all others setting... **(註1.) 我在 Configure>Configuration Bits 的設定項目中看不到這個選項,不知是否要在其他地方加以設定.. 另外我選擇以 Program->Program 選項運作時在 MPLAB ICD 2 的顯示視窗時則出現以下訊息: ********************************************* Programming Target... ...Erasing Part ...Loading DebugExecutive ...Programming DebugExecutive ...Programming Debug Vector ...Programming RSBUG Verifying... ...Debug Executive ...Debug Vector ...Verify Succeeded Programming Configuration Bits .. Config Memory Verifying configuration memory... ...Verify Succeeded Connecting to debug executive *** ICD0083: Target not in debug mode, unable to perform operation MPLAB ICD 2 Ready ********************************************* 其中的 *** ICD0083: Target not in debug mode, unable to perform operation, 是否是因為 Background Debug 未 Enable 的關係,若是則應該在何處設定呢?還是 Oscillator 的選項是錯誤的.... 附帶說明使用的系統: WinMe OS MPLAB IDE V6.60(公司原版) Demo Board: EVM:APP001 REV.2 20041014 ChipSet: PIC18F452 Communication Type : USB Oscillator : 16000 KSS 8ET 謝謝!!
發表於: 2005/4/1 9:53
|
|||
|
Re: I2C master mode 的 clock 為什麼不會改變
|
||||
---|---|---|---|---|
資深會員
|
參照:
剛剛試了把那3行移到後面, 結果依然一樣 .56 是因為這段程式是copy C compiler 之後的asm程式的關係
發表於: 2005/4/1 9:44
|
|||
|