求助ICD3 無法燒錄 Target Devicd ID(0X41d0000) does not match expected Device ID (0x183d0000)
|
|
|||
---|---|---|---|---|
新會員
|
Attach file: (0.00 KB) (0.00 KB)
發表於: 2014/7/4 21:43
|
|||
|
Re: 請問使用16F877A的IO問題?
|
||||
---|---|---|---|---|
新會員
|
補充樓上的意思~
void main(void) { TRISB = 0x20; PORTB = 0x00; OPTION = 0x80; while(1) { if(RB5) LED=1; else LED=0; } } 加入while迴圈 ,程式才不會一直重復initialize~
發表於: 2009/3/30 13:37
|
|||
|
Re: 電壓檢測AD跟電壓比較器差異?
|
||||
---|---|---|---|---|
新會員
|
照你字面上的需求,你只需要用comparator就行了,差別在你用AD轉換後,你可利用數位方式判斷你要的6V,至於用比較器,你只需算好你的12V轉5V的分壓值,再將你的6V分壓成為你的參考電壓之後,二者比較,當12V低於6V時就輸出一個I/O, 個人認為用比較器會比較快,筆紙算一算就搞定了~
發表於: 2009/3/30 13:30
|
|||
|
PIC18F4550 MSSP I2C V.S MCP9801
|
||||
---|---|---|---|---|
新會員
|
請教版上的高手們,
目前手邊利用PIC18F4550 與MCP9801通訊,遇到一個問題~ 我是使用master mode ~ mcp9801 address 為000 //I2C 通訊初使化 OpenI2C(MASTER,SLEW_ON); SSPADD= 63; //baudrate 100KHz (Crystal :20MHz) 目前我設定mcp9801為12bit 解析,寫入動作ok,也得到slave ACK回應(由示波器上得知)~ 問題出在於,當我要讀取2BYTES溫度資料時, 我使用 unsigned char Buf2[2]; union Byte2Int{ unsigned char A[2]; unsigned int B; } Temp;//Temp.B 為合併值 IdleI2C(); // ensure module is idle StartI2C();// Start condition I2C_Done(); WriteI2C(0x90); while(SSPCON2bits.ACKSTAT); I2C_Done();// Clear SSPIF flag WriteI2C(0x00);// 指定至溫度暫存器 while(SSPCON2bits.ACKSTAT); // wait until received the Acknowledge from MCP9801 I2C_Done(); RestartI2C(); //送出Restart訊號 I2C_Done(); WriteI2C(0x91); // 設定為讀出模式 while(SSPCON2bits.ACKSTAT); SSPCON2bits.ACKEN = 1; I2C_Done(); SSPCON2bits.RCEN = 1; getsI2C(Buf2,2); Temp.A[1] = Buf2[0]; Temp.A[0] = Buf2[1]; NotAckI2C(); I2C_Done(); StopI2C(); // Stop condition I2C_Done(); // Wait the Stop condition co return (Temp.B); //回傳12bits溫度值,放置在Temp.B Temp.B >> 4; Temp.B*0.0625 = 實際溫度 但目前我得到的溫度值並不正確(9801有回傳溫度資料),問題似乎是出現在I2C連續讀取2BYTES的格式寫法,請教版上的高手~用I2C連續讀取2BYTES的資料語法應為何??
發表於: 2009/2/21 2:06
|
|||
|
二台機台的電位差
|
||||
---|---|---|---|---|
新會員
|
請教版上的各位高手~
目前小弟遇到一個問題,不知如何防治與解決,希望版上的各位,能提供你們寶貴的意見,以供參考~ 問題是這樣的,小弟公司的機台電壓為單相220v有裝漏電斷路器且機台有接地,單獨碰觸機台時,不會有任何異狀,但如果同時碰觸二台機台(左手摸機台1、右手摸機台2),就會有觸電的感覺,請教版上的各位,遇到這種情況,要如何防治與解決呢?
發表於: 2008/11/19 14:01
|
|||
|
PIC18F1330 PWM問題
|
||||
---|---|---|---|---|
新會員
|
請教版上高手,
目前想用P18F1330做2組PWM的控制(用來控制步進馬達做微步進系統),在參考DATASHEET 時看不太懂,關於~ PTMR(PWM TIME BASE) , PTPER(PWM TIME BASE Period)的關系~ 目前duty cycle的register 為PDC0~2,那我要拿PTMR還是PTPER 當為週期~ 因為第一次使用,看的有點混亂,還請版上高手指點,TKS
發表於: 2008/10/3 16:41
|
|||
|
Re: datasheet是不是寫錯了~
|
||||
---|---|---|---|---|
新會員
|
感謝master大,以後我會注意的,不經一事不長一智~thanks
發表於: 2008/10/3 9:00
|
|||
|
datasheet是不是寫錯了~
|
||||
---|---|---|---|---|
新會員
|
版主你好,
目前我手邊正在用pic18f1330 ssop 20pin 包裝,從網路上下載datasheet進行設定操作,在page 166頁,ADCON1 CONTROL REGISTER ~ 裡面的PCFG3~PCFG0 , 設定為0為一般I/O,設定為1則是Analog port ,但實際上我測試過確認~ PCFG3~0設定為1才是一般I/O , 0則為ANALOG~ 請版主幫我確認是不是原廠的DATASHEET出錯,我花了不少時間DEBUG ~有點生氣~ Attach file: (0.00 KB)
發表於: 2008/10/2 20:05
|
|||
|
請教一個觀念,關於ADRESH+ADRESL
|
||||
---|---|---|---|---|
新會員
|
請教各位版友,
目前小弟採用PIC12F675,採用10BIT AD轉換後靠右將值放置在ADRESH及ADRESL~ 但小弟想將這二個值合在一起運算,即~ ADRESULT(16bits) = ADRESH(8bits)+ADRESL(8bits) 小弟的程式寫法如下~ int ADRESULT ; ADRESULT=ADRESH; ADRESULT<<8; ADRESULT|=ADRESL; 這樣的寫法對嗎?個人很懷疑~所以上來請教,若遇到這樣的問題,程式要如何寫才是正確的? 曾有搜尋過相關的題目,有版友是用以下方式完成 word temp; temp =((word)(ADRESH<<8)); temp |=(word)(ADRESL); 我曾經寫在程式試過,但complier時發生錯誤,訊息好像是指沒有定義word指令,complier我是用hi-tech c
發表於: 2008/8/28 15:14
|
|||
|