關於 WRTC - Configuration Register Write Protection
|
||||
---|---|---|---|---|
新會員
|
大家好!
關於 WRTC - Configuration Register Write Protection, 在燒錄時將 WRTC enable, 可否藉由 ICD2 來更改 configuration 設定? Data sheet 上有提到 可以藉由 ICSP 和 External Programmer 來更改! 謝謝!!
發表於: 2005/1/29 18:10
|
|||
|
使用16F877時,用hitec c-compiler記憶體不足的情況
|
||||
---|---|---|---|---|
新會員
|
請問各位前輩~
小弟在使用16F877時,編譯後 由於宣告變數太多,記憶體都用光了 最後編譯完 出現了 ::Can't find 0x1 words (0x1 withtotal) for psect intsave in segment BANK0 (error) BUILD FAILED 請問不知道該如何使用C語言來解決.. 好像可以切換BANK 由於是新手,又很緊急.. 希望知道的前輩們能回答一下嗎 感謝前輩!
發表於: 2005/1/29 17:00
|
|||
|
Re: ICD 2 問題
|
||||
---|---|---|---|---|
高級會員
|
應該是modify read modify write 問題
請看右邊的江湖一點訣 9.10 I/O 编程注意事项 使用端口及GPIO 作为I/O 时,为确保操作按预想的进行,需要考虑一些设计注意事项。 9.10.1 双向I/O 口 任何写操作指令实际上都是先执行一个读操作,再执行一个写操作。例如,BCF 和BSF 指令,先 读寄存器的值到CPU,然后执行位操作,最后将结果写回寄存器。当一个端口既有输入引脚又有 输出引脚时,对其的操作必须加倍小心。例如,对PORTB 的bit5 执行BSF 操作时,先将PORTB 的全部8 位数值读入CPU,然后将bit5 位置“1”,最后将PORTB 的结果写回输出锁存器。如 果另一个PORTB 的引脚是作为双向I/O 引脚(如:bit0),而且此时引脚定义为输入,则该引脚 当前的输入信号被读入CPU,然后将值重新写入该特定引脚的数据锁存器,覆盖先前的内容。只 要该引脚一直是输入模式,就毫无问题。然而,如果bit0 随后变成输出引脚,其数据锁存器的内 容已经改变而无法得知。 对端口寄存器的读操作,是读端口引脚的电平值。对端口寄存器的写操作是向端口锁存器写值。 对一个端口使用读- 修改- 写指令(如:BCF 和BSF 等)时,首先读入端口引脚的数值,然后对 读入值执行指定的操作,最后将操作结果写入端口锁存器。 例9-9 显示了对一个I/O 端口执行两个连续的读- 修改- 写指令的情况。 你應該是大陸同胞吧 所以我就不用翻成繁體字了
發表於: 2005/1/29 11:06
|
|||
|
Re: 無線電干擾問題
|
||||
---|---|---|---|---|
高級會員
|
發表於: 2005/1/29 11:01
|
|||
|
Re: 請問一下看門狗的意義..怎麼用?
|
||||
---|---|---|---|---|
高級會員
|
26.1 簡介
看門狗計時器(WDT)是一個運行在片內的RC 振盪器,它不需要任何的外接元件。圖26-1 為 看門狗計時器的結構框圖。該RC 振盪器獨立於OSC1/CLKIN 引腳上的RC 振盪器。這樣,即使 器件的OSC1 和OSC2 引腳上的時鐘停振(例如執行了SLEEP指令),WDT 仍將正常工作。 有一個器件配置位元是控制看門狗計時器(WDT)的使能/ 關閉。如果WDT 被使能,就不能通過 軟體關閉此功能。 看門狗計時器(WDT)的操作 在正常操作期間,一次WDT 超時溢出將產生一次器件復位。如果器件處於休眠狀態,一次WDT 超時溢出將喚醒器件,使其繼續正常操作(即稱作WDT 喚醒)。對WDTE 設置位清零可以永久 性地關閉WDT。 後分頻器分配完全是由軟體控制,即它可在程式執行期間隨時更改。 注: 為避免發生不可預測的器件復位,當從Timer0 預分頻器的分配改為WDT 後分頻器 的分配時,必須執行下列指令序列(如例26-1 所示)。即使WDT 被禁止,也要執 行這個指令序列。 在例26-1 中,如果需要的預分頻值不是1:1,就不需要對OPTION_REG 寄存器做初始修改。如 果需要的預分頻值是1:1,那麼先向OPTION_REG 設置一個非1:1 的臨時預分頻值,在完成其 它操作後,在最後修改OPTION_REG 時再設置1:1 的預分頻值。這樣操作,主要是因為無法知 道TMR0 預分頻器的當前計數值,而且分頻器更改後,該值將變為WDT 後分頻器的當前計數值, 所以必須遵循示例中的代碼順序。如果沒有按照示例中的代碼順序改變OPTION_REG 寄存器, 那麼無法準確得知WDT 復位前的時間。 26.3.1 WDT 週期 WDT 的超時溢出週期在不使用後分頻器時的典型值為18ms。這個週期隨著溫度、VDD 和製造工 藝偏差而不盡相同(見DC規範)。如果需要更長的超時溢出週期,可以用軟體設置OPTION_REG 寄存器,把後分頻器分配給WDT ;這時最大分頻率可達1:128,可以實現2.3s 左右的超時溢出 週期。 CLRWDT 和SLEEP 指令將對WDT 和後分頻器(如果分配給WDT)清零,防止其超時而引起器件複 位 。 看門狗計時器超時溢出使WDT 重定(正常工作狀態下)或WDT 喚醒(休眠狀態下),同時狀 態寄存器中的TO 位將被清零。 26.3.2 WDT 編程注意事項 在最惡劣的情況下(VDD 最小、溫度最高、WDT 後分頻比最大),要過幾秒鐘WDT 才會發生 超時溢出,因此在編寫程式時要考慮到這一點。 表26-1: 和看門狗計時器有關的寄存器 注: 當後分頻器分配給WDT 時,在改變後分頻值前應務必先執行一條CLRWDT 指令,否 則可能會發生WDT 復位。
發表於: 2005/1/29 10:56
|
|||
|
Re: ICD 2 問題
|
||||
---|---|---|---|---|
新會員
|
是pic16f877a 來的..
發表於: 2005/1/29 10:56
|
|||
|
Re: 請問一下看門狗的意義..怎麼用?
|
||||
---|---|---|---|---|
新會員
|
謝謝版主.....^^
發表於: 2005/1/29 8:58
|
|||
|
Re: 無線電干擾問題
|
||||
---|---|---|---|---|
初級會員
|
layout很重要哦......還有試著加一個鐵殼!另外不知道是是直接用單晶片在Run,還是有用ice呢?這個結果是不一樣的哦
發表於: 2005/1/29 5:48
|
|||
|
Re: ICD 2 問題
|
||||
---|---|---|---|---|
初級會員
|
可否說一下你用的形號(mcu)...
發表於: 2005/1/29 5:38
|
|||
|