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

論壇索引


Board index » All Posts (jlian)




Re: 為什麼EEPROM寫不進去??
資深會員
資深會員


你好:
先用SIM模擬,須先將EEPROM視窗打開,
在程式中的寫完EEPROM後設斷點,
看EEPROM是否有寫入.
Thanks.

發表於: 2008/9/19 10:31
頂部


Re: 為什麼EEPROM寫不進去??
資深會員
資深會員


你好:

int DATA_EE_ADDR=0x20;
int DATA_EE_DATA=0x41;

char DATA_EE_ADDR=0x20;
char DATA_EE_DATA=0x41;
用我給的code試試.
Thanks.

發表於: 2008/9/19 10:26
頂部


Re: 為什麼EEPROM寫不進去??
資深會員
資深會員


你好:
EEIF=0;
EEADR=addr;
EEDATA=value;
//EEPGD=0;
//CFGS=0;
WREN=1;
GIE=0;
EECON2=0x55;
EECON2=0xAA;
EEWR=1;
GIE=1;
//while(EEWR);
while(!EEIF);
EEIF=0;
WREN=0;
用18F試試看!
Thanks.

發表於: 2008/9/19 9:29
頂部


Re: 請問C18高低中斷,Compiler為何會更改暫存器(ACCESS)!
資深會員
資深會員


大家好:
問題已解決:
#pragma interruptlow InterruptHandlerLow nosave=section(".tmpdata")
Thanks.

發表於: 2008/9/18 9:57
頂部


Re: 請問C18高低中斷,Compiler為何會更改暫存器(ACCESS)!
資深會員
資深會員


大家好:
我該如何正確的使用C18的中斷?
#pragma interrupt InterruptHandlerLow nosave=section(".tmpdata")
void InterruptHandlerLow (void)
{
w_temp1=WREG;
bsr_temp1=BSR;
st_temp1=STATUS;

if(TMR0IF)
{
TMR0IF=0;
...
}
if(ADIF)
{
...
ADIF=0;
}

STATUS=st_temp1;
BSR=bsr_temp1;
WREG=w_temp1;
}
//
void InterruptHandlerHigh(void)
{
w_temp0=WREG;
bsr_temp0=BSR;
st_temp0=STATUS;
...
STATUS=st_temp0;
BSR=bsr_temp0;
WREG=w_temp0;
}
有使用AD就不行!
為何C18這麼難用呢?
煩請高手解說,Thanks.

發表於: 2008/9/17 17:11
頂部


Re: 請問C18高低中斷,Compiler為何會更改暫存器(ACCESS)!
資深會員
資深會員


大家好:
我想我的問題應是stack overflow,
所以應是C18使用軟體stack的關係.
那麼我該如何不使用軟體stack呢?
於Build option...內有一設定如下:
Default storage class :

Auto
Static
Overlay

請問上面三個差別為何?
煩請各位先進解說,Thanks.

發表於: 2008/9/17 11:11
頂部


請問C18高低中斷,Compiler為何會更改暫存器(ACCESS)!
資深會員
資深會員


大家好:
1.
TMR0IE=1; //低中斷
TMR1IE=1; //高中斷
使用C18高低中斷,為何會將:如INTCON2的值改變掉?
將INTCON2的TMR0IE=0;
2.
而且PC會亂跑,不知為何?
程式長度為0x179F,卻會跑到0x2C5E或0x3478...

我該怎麼處理較好?
煩請各位先進解說.
Thanks.

發表於: 2008/9/16 14:00
頂部


Re: 不知為何ICD2會停止!!!
資深會員
資深會員


大家好:

void main(void)
{
init(); //裡面有GIE=1,PEIE=1;
wr_ee(3,0);
...
}

void wr_ee(uns8 data,uns8 addr)
{
EEADR = addr;
EEDATA = data;
EECON1bits.EEPGD = 0;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;
INTCONbits.GIE = 0;
EECON2 = 0x55; //因GIE=0後ICD2會停止在這裡!
EECON2 = 0xAA;
EECON1bits.WR = 1;
INTCONbits.GIE = 1;
EECON1bits.WREN = 0;
while(EECON1bits.WR);
}

正常來講ICD2會一直RUN才對,
為何會停止!搞不懂?煩請幫忙解說.
Thanks.

發表於: 2008/9/3 13:49
頂部


Re: C30 旋轉指令
資深會員
資深會員


你好:
我只會用這樣的方式,不知對你有沒有幫助?
//C左旋1bit(1BYTE)
example:A=0xAA;
B=A&0x80;
A<<=1;
if(B!=0)A|=0x01;
//
//C右旋1bit(1BYTE)
example:A=0x55;
B=A&0x01;
A>>=1;
if(B!=0)A|=0x80;

發表於: 2008/9/2 11:45
頂部


不知為何ICD2會停止!!!
資深會員
資深會員


大家好:
我使用環境為MPLAB V8.10及C18,
IC為P18F4423(8KX16b),tool為ICD2,
程式容量為0x15BF(下載燒錄時顯示),

因為程式一邊修整(有設一斷點);
一邊下載執行(RUN),可是有時候會停止在程式某處而不執行,
也不知為何會如此,不知各位先進是否有遇過相同經驗?
不知該如何處置較好!

煩請幫忙解說釋疑.
Thanks.

發表於: 2008/9/2 11:14
頂部



« 1 ... 59 60 61 (62) 63 64 65 ... 73 »



:::

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

教育訓練中心

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