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

論壇索引


Board index » All Posts (r620)




Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#1
初級會員
初級會員


謝謝shpeng及Beee的回覆及補充

又長了知識
如果Beee有需要我一定將慘痛的經驗 ~><~ 跟大家分享

以前剛接觸 PIC 的時候是用 PIC16C711 這一顆,一開始就燒了2顆不會動的 MCU 出來,一直燒到第7顆都不會動,才找到問題...AD 暫存器設錯
到了程式完全寫好測試OK,已經燒了34顆有問題的 MCU 了 程式寫好了測試OK了電路板layout好了準備要生產了,客戶沒下文了
還好我不是老闆要不然一定是後面這個表情


比較近的一次遇到的情形是用 PIC16F874A PLCC 44PIN,當時還在測試階段,所以每根I/O腳都拉5點出來以便隨時可作修改,IC座感覺就在洞洞板的正中央,
剛開始時沒用到的I/O腳都設為 輸出 Low 空接 ,結果執行的時候,有時候 Relay 會快速一直 on/off,起初以為是沒用到的I/O腳受到干擾的問題,又將沒用到的I/O腳設為 輸入 Low 接地,結果 Relay 還是會一直快速 on/off,後來又加入了電容等去濾雜訊,結果還是一樣
後來發現了一件神奇的事 剛開始是金屬接近IC座旁的洞洞區的時候(沒有碰到還離有1~3公分,也就是從上空經過),就會聽到聲響感覺板子好像在快速震動 ,但眼睛看不出版子有在動,只有聽到聲響,之後每次試都這樣,一有金屬接近IC座旁的洞洞區就有聲響,
最後發現連手指接近都會有聲響 (難不成是江湖失傳已久的隔空點穴 還是變成 mTouch 了 )
最後種種方法都試過了還是一樣,只好在把程式跟硬體重新檢查一次,看到程式燒錄設定時,發現有一個沒看過的設定 -> Low Voltage Program 而且是 Enabled 的 於是我將它 Disabled之後再測試,就一切都正常了
不管是沒用到的I/O腳都設為 輸出 Low 空接 ,或是沒用到的I/O腳設為 輸入 Low 接地,或是濾雜訊電容等有加沒加都一樣不受影響正常了
害我以為學到了隔空點穴

以上是一些以前遇過的狀況跟大家分享一下
再次謝謝大家的回答

趕快來去寫程式

發表於: 2009/12/3 9:59
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#2
初級會員
初級會員


謝謝Beee的回覆

用了Beee所講的方式去測了一下 Timer1 的起振時間,測起來平均在 1 秒左右,
我在 Timer1 中斷副程式加入計時程式,從 power on 開始到時間正常顯示這段時間,為 1 分鐘多一點,
也就是說 power on 約 1 秒後 Timer1 外接32768Hz震盪器已經起振完成開始震盪了,而且在這之後的 1 分多鐘,也都正常震盪,
我照Ryang板主所說用 ICD2 去執行程式,發現 Timer1 中斷每次都有發生 但時間顯示沒動作
看了一下暫存器跟變數的內容,發現有一個變數每次停在中斷點時都會減一,不過值是從 255 一直減下來,
再重新檢查了程式,發現一個計算秒的變數沒初始化到 (我設定是 halfSec 初始為 2 用 decfsz 判斷,=0 為 1 秒)

power on ,Timer1 起振後由於 halfSec 沒初始化到,所以一開始 halfSec=0 ,一進入到 Timer1 中斷,
執行到 decfsz halfSec 後,halfSec 的值就變為 255(0-1=255) 計算完這 255 次之後剛好1 分多鐘,Bug 就是在這裡,
Bug 的原因是 halfSec 沒有初始化到
感覺有點對不起大家 ~~~><~~~
不過由於這次大家提供的意見跟除錯方法還有很多寶貴的知識,讓我獲益良多對ICD2的除錯用法也更加了解,再次謝謝大家


以下對2個已解決的狀況作個總結:
1. 程式寫超過程式記憶體 page0(0005h~07ffh無法動作的問題
   狀況:Power On 
or Reset 後程式動一下即當住不動
   原因:位於程式位址 0x04h 的 
[color=CC0000]goto 中斷副程式[/color]前未加入 pagesel 所致,所以其它 call or goto 前雖然有加 pagesel 指令但程式始終會當住,
   解決:於程式 call 
or goto 中斷副程式前加上 pagesel 指令,或是只要有用到 call or goto 之前都加上 pagesel 指令, 例如以下程式碼

         STARTUP CODE
                 nop
;for ICD2 use
                 goto    
主程式段

                 CODE    04H
                 banksel 
var
                 
push W STATUS PCLATH 等
[b][color=CC0000]               pagesel 中斷副程式[/color][/b]
[
b][color=CC0000]               goto    中斷副程式[/color][/b]
         
PROG1   CODE
         主程式段
                 pagesel 初始化副程式
                 call    初始化副程式
                 其它初始化指令
         主程式段迴圈
                 主程式指令區段
                 pagesel 主程式段迴圈
                 
goto    主程式段迴圈
         中斷副程式
                 中斷處理程式區段
                 banksel 
var
                 
pop PCLATH STATUS W  等
                 retfie
         PROG2   CODE
                 其它副程式區段
                 end

2. 程式於每次 power on 時需 1 分鐘後才開始正常動作
   狀況:程式於每次 power on 時,主程式正常動作,但LCD顯示副程式於 1 分鐘後才開始動作,但每次 reset 主程式和LCD顯示副程式都馬上正常動作,
   原因:計時變數未初始化所致,導致 Timer1 中斷雖然每次都有進入,但因計時變數數值不正確,造成程式動作不正常,
   解決:將計時變數正確初始化


以上跟大家分享一下,希望對大家會有所幫助
再次謝謝大家的回答

發表於: 2009/12/2 14:15
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#3
初級會員
初級會員


謝謝Ryang板主及Beee的回覆

突然想到,我的程式 power on 的時候,時間顯示 00 00 再來 0.5 秒後時間顯示 00:00 再來就要1分鐘後才會顯示 00:01,然後開始正常動作,
: -> 1秒亮滅一次(0.5秒亮,0.5秒滅)
: 的顯示是在 Timer1 中斷直接處理,時間顯示是在時間顯示副程式處理,

也就是說 power on 時,大約1秒左右,Timer1 第一次中斷有執行到(: 有顯示出來),再來 Timer1 中斷就間隔 1 分鐘以後才又執行到,
依這樣分析好像是程式有問題,不過 power on 以後每次 reset 時間顯示都正常(馬上就動作了),這樣感覺程式好象又沒問題

不知哪裡出了問題?
難道是一開始有震盪起來,後來又掉下來,再來又震盪起來

明天到公司的時候再照Ryang板主及Beee的建議來debugger看看,看能不能找出哪裡出問題

一有蛛絲馬跡就馬上PO上來跟大家討論
再次謝謝大家的回答
祝大家晚安

發表於: 2009/12/1 23:23
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#4
初級會員
初級會員


謝謝shpehg及Beee的回覆

我再從硬體方面來改看看,不過現在是用麵包板再做測試,接到 MCU 的線都很長,不知道是不是這樣造成的影響,
我再來測測看有結果在PO上來


原來 Beee 想抓板主的小辮辮

發表於: 2009/12/1 9:02
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#5
初級會員
初級會員


謝謝shpehg及Ryang板主及Beee的回覆
偷偷不用心一下被發現 其實是一直沒注意到 goto ISR這裏,一直把它當成 0x04h 真是嚴重失誤
還好shpehg及Ryang板主再次提醒,讓我注意到 0x04h≠goto ISR

目前程式改成這樣:
STARTUP CODE
        nop
;for ICD2 use
        goto    
Start

        CODE    04H
        banksel tempW
        movwf   tempW
        swapf   STATUS
,w
        movwf   tempStatus
        swapf   PCLATH
,w
        movwf   tempPCLATH
[b][color=CC0000]       pagesel ISR[/color][/b]
[
b][color=CC0000]       goto    ISR[/color][/b]
PROG1   CODE
Start
        pagesel Initial
        call    Initial
        pagesel LCDInitial
        call    LCDInitial
StartLoop
        主程式區段
        pagesel StartLoop
        
goto StartLoop
ISR
        中斷處理程式區段
        banksel tempStatus
        swapf   tempPCLATH
,w
        movwf   PCLATH
        swapf   tempStatus
,w
        movwf   STATUS
        swapf   tempW
,f
        swapf   tempW
,w
        retfie

PROG2   CODE
        LCD時間顯示副程式區段
        end


因為在 0x04h 加入好幾個指令,用 org 不知道要怎麼寫,
所以直接套用C:\Program Files\Microchip\MPASM Suite\LKR\16f946.lkr 這個檔案來修改
紅色部分是我修改的部份,中斷一發生,程式就跳到 0x04h,開始執行放在這裡的指令,banksel 和 pagesel 各佔 2 個記憶體位址,
所以從 0x04h 的 banksel tempW 指令到 goto ISR 指令,共用了 10 個記憶體位址,所以紅色部分我修改為 0x0D
由於從 0x04h~0x0Dh 用掉了 page0(0005h~07ffh) 共 9 個記憶體位址,所以紅色部分我修改為 0x0E,程式段由 0x0E 開始,
以上如有說錯還請指正,謝謝 ,因為對.lkr檔還不是很清楚 ,這是第一次接觸到.lkr檔
// Sample linker command file for 16F946


LIBPATH  .

CODEPAGE   NAME=vectors  START=0x0      END=[b][color=CC0000]0x0D[/color][/b]      PROTECTED
CODEPAGE   NAME=page0    START=[b][color=CC0000]0x0E[/color][/b]      END=0x7FF
CODEPAGE   NAME
=page1    START=0x800    END=0xFFF
CODEPAGE   NAME
=page2    START=0x1000   END=0x17FF
CODEPAGE   NAME
=page3    START=0x1800   END=0x1FFF
CODEPAGE   NAME
=.idlocs  START=0x2000   END=0x2003   PROTECTED
CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
CODEPAGE   NAME=eedata   START=0x2100   END=0x21FF   PROTECTED

DATABANK   NAME=sfr0     START=0x0      END=0x1F     PROTECTED
DATABANK   NAME=sfr1     START=0x80     END=0x9F     PROTECTED
DATABANK   NAME=sfr2     START=0x100    END=0x11F    PROTECTED
DATABANK   NAME=sfr3     START=0x180    END=0x19F    PROTECTED

DATABANK   NAME=gpr0     START=0x20     END=0x6F
DATABANK   NAME
=gpr1     START=0xA0     END=0xEF
DATABANK   NAME
=gpr2     START=0x120    END=0x16F
DATABANK   NAME
=gpr3     START=0x1A0    END=0x1EF

SHAREBANK  NAME
=gprnobnk START=0x70     END=0x7F
SHAREBANK  NAME
=gprnobnk START=0xF0     END=0xFF
SHAREBANK  NAME
=gprnobnk START=0x170    END=0x17F
SHAREBANK  NAME
=gprnobnk START=0x1F0    END=0x1FF

SECTION    NAME
=STARTUP  ROM=vectors    // Reset and interrupt vectors
SECTION    NAME=PROG1    ROM=page0      // ROM code space - page0
SECTION    NAME=PROG2    ROM=page1      // ROM code space - page1
SECTION    NAME=PROG3    ROM=page2      // ROM code space - page2
SECTION    NAME=PROG4    ROM=page3      // ROM code space - page3
SECTION    NAME=IDLOCS   ROM=.idlocs    // ID locations
SECTION    NAME=DEEPROM  ROM=eedata     // Data EEPROM


以上提供給大家參考一下,pagesel 的問題解決了

不過還有2個問題
問題1MCU 每次 power off 再 power on ,程式已開始動作,
       但時鐘的顯示都會停在 00
:00 約一分鐘才會開始動作,
       時鐘顯示正常動作後,用 reset 腳 reset MCU ,
       此時時鐘顯示可正常動作,但如power off 再 power on ,
       時鐘的顯示又會停在 00
:00 約一分鐘才會開始動作,
       這跟暫存器設定有關係嗎?


問題2
就是EEPROM的問題,我的程式目前設定程式一開始執行時,會從EEPROM讀出資料顯示在 LCD 上,
       如果是 power off 等一小段時間再 power on ,此時 LCD 上顯示的是程式預設要顯示的資料,而非從EEPROM讀出的資料?
       如果是用 MCLR reset 腳 reset ,此時 LCD 顯示的是從EEPROM讀出的資料
       試了好幾次都這樣不知道是哪裡出問題?



以上再請大家指點一下,謝謝

發表於: 2009/11/27 18:57
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#6
初級會員
初級會員


謝謝Ryang板主的回覆
org     00h
        nop
;for ICD2 use
        goto    
Start

        org     04h
        
goto    ISR
PROG1   CODE
Start
        call    Initial <- 變數給定初始值,暫存器設定
        call    LCDInitial
StartLoop
        主程式區段
        
goto StartLoop
ISR
        中斷處理程式區段
        retfie

PROG2   CODE
        LCD時間顯示副程式區段
        end


我的程式流程是一開始從 00h 進入就跳到 Start 開始變數給定初始值,暫存器設定,完成後才開始作其他的動作,
Ryang板主說的 Cold Start or Warm Start 指的是這個嗎?


剛用 ICD2 debugger 在看 PCLATH 的值,結果有看到 1F ?我只用到page1(0800h~0fffh),應該不會跑到page3(1800h~1fffh)才對

我再來看一下,有結果再PO上來跟大家討論一下

以上再請大家指點一下,謝謝

發表於: 2009/11/27 13:55
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#7
初級會員
初級會員


謝謝shpeng及Beee的回覆

昨天下午跑去送貨 這年頭錢真難賺

我的探棒是x10下去量的,會吃掉訊號,我再想想其他方式,因為沒有x100

忘了電容並是提高容值耐壓不變,串聯是提高耐壓容值降低

看了Beee的回覆,發現32768Hz震盪器似乎沒有問題,這樣問題就釐清了一些,
問題1MCU 每次 power off 再 power on ,程式已開始動作,
       但時鐘的顯示都會停在 00
:00 約一分鐘才會開始動作,
       時鐘顯示正常動作後,用 reset 腳 reset MCU ,
       此時時鐘顯示可正常動作,但如power off 再 power on ,
       時鐘的顯示又會停在 00
:00 約一分鐘才會開始動作,
       這跟暫存器設定有關係嗎?
       目前暫存器只用到 OSCCON 
-> B'0111 0000'設內部8mHz鄭蕩器
                        I
/O PORT 暫存器
                        LCDPS 
-> B'0000 0000' TYPE A WAVE 1/3 BAIS 1:1

                        LCDSE0 
-> B'0000 0000'
                        
LCDSE1 -> B'0000 0000'
                        
LCDSE2 -> B'0000 0000'
                        
LCDSE3 -> B'1111 1111'
                        
LCDSE4 -> B'0011 1111'
                        
LCDSE5 -> B'0000 0000'

                        
LCDON -> B'0101 0011'FOSC/8192,1/4COM

                        LCDDATA12 
-> B'0000 0000'
                        
LCDDATA13 -> B'0000 0000'
                        
LCDDATA15 -> B'0000 0000'
                        
LCDDATA16 -> B'0000 0000'
                        
LCDDATA18 -> B'0000 0000'
                        
LCDDATA19 -> B'0000 0000'
                        
LCDDATA21 -> B'0000 0000'
                        
LCDDATA22 -> B'0000 0000'

                        
bsf     LCDCON,LCDEN;enable LCD module

                        OPTION_REG 
-> B'1100 0000'

                        
INTCON -> B'0100 0000'
                        
bsf     INTCON,GIE
                        
                        T1CON 
-> B'0000 1110' bit 4~5(T1CKPS1 T1CKPS0set 00 is 1:1
                                              bit 3
(T1OSCENset 1 is Enable 32.768KHz crystal for Timer1 clock
                                              bit 2
(T1SYNCset 1 is 非同步於外部時脈 ,
                                              
bit 1(TMR1CSset 1 is Timer1 clock use external clock
                                              bit 0
(TMR1ONset 0 is Disable Timer1
                        TMR1H 
->  H'C0';TMR1H=0xC0 -> 1次中斷0.5sec ;C0(Hbit,TMR1H00(Lbit,TMR1L) -> 49152 ;65536-49152=16384 in 32.768KHz
                        TMR1L 
->  00h;TMR1L=0x00
                        bsf     PIE1
,TMR1IE;enable TMR1IE=
                        bcf     PIR1
,TMR1IF;clear TMR1IF(TMR1IF=0
                        
bsf     T1CON,TMR1ON;Enable Timer1 ;bit 0(TMR1ONset 1 is Enable Timer1  

       以上是我目前用到的暫存器的設定及設定的順序,不曉得還有沒有其他沒設到的地方?



問題2
就是EEPROM的問題,我的程式目前設定程式一開始執行時,會從EEPROM讀出資料顯示在 LCD 上,
       如果是 power off 等一小段時間再 power on ,此時 LCD 上顯示的是程式預設要顯示的資料,而非從EEPROM讀出的資料?
       如果是用 MCLR reset 腳 reset ,此時 LCD 顯示的是從EEPROM讀出的資料
       試了好幾次都這樣不知道是哪裡出問題?


以上再請大家指點一下,謝謝

發表於: 2009/11/27 10:05
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#8
初級會員
初級會員


謝謝shpeng及Ryang板主的回覆
也謝謝shpeng的加油打氣

目前發現2個問題點:
1. EEPROM的問題,我的程式目前設定程式一開始執行時,會從EEPROM讀出資料顯示在 LCD 上,
   如果是 power off 等一小段時間再 power on ,此時 LCD 上顯示的是程式預設要顯示的資料,而非從EEPROM讀出的資料?
   如果是用 MCLR reset 腳 reset ,此時 LCD 顯示的是從EEPROM讀出的資料
   試了好幾次都這樣不知道是哪裡出問題?

2. Timer1 外接 32768Hz 震盪器的問題,我原本以為震盪器有問題,因為量測到的震盪波形只在 1V 內震盪,
   今天我又從好的PCB板上拆一顆震盪器下來用,並將我麵包板上用的震盪器接回去PCB板上,PCB板送電動作一切正常,
   量測震盪波形有在 5V 內震盪,可是量測在我麵包板上的 32768Hz 震盪器,震盪波形只在 350mV 內震盪???
   而且示波器探棒一勾上震盪器接腳,時間顯示就停止不動,探棒一拿開時間顯示又恢復動作,感覺震盪時脈被示波器吃掉了,
   不知道是哪裡出問題?
   我的 32768Hz 震盪器是接 20p
(10p串10p)電容到地,可是PCB板上的 32768Hz 震盪器沒接電容也是跑的很正常,真是...

以上兩點還請大家指點一下,謝謝

趕快來去惡補一下MPASM的講義

發表於: 2009/11/26 14:46
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#9
初級會員
初級會員


用 ICD2 去 debugger 時發現

1. 將程式縮到page0
(0005h~07ffh)以內,可以正常執行,LCD 顯示也正常(00:00~23:59)
   中斷點設於 Timer1 中斷副程式,每次程式都有停在中斷點這

2. 將 LCD顯示副程式移到page1
(0800h~0fffh),主程式可正常執行,但 LCD 顯示停在 00:00 不動,
   中斷點設於 Timer1 中斷副程式,只有程式剛開始執行那一下有停在中斷點這,再來都沒停過 ?????


系統主時脈是用內部8MHz震盪器
Timer1 外接 32768Hz 震盪器當時鐘計時用

是 32768Hz 震盪器有問題的關係嗎?
還是有其他問題

再請大家指點一下,謝謝

發表於: 2009/11/25 17:25
頂部


Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
#10
初級會員
初級會員


謝謝Ryang板主的回覆

目前測試有發現在 pagesel 副程式,call 副程式返回後,
如果接下來是變數,在變數之前沒加 banksel 就會不正常,
變數前有加 banksel 就正常,
感覺跟shpehg所提到的一樣跟bank有關係
banksel  var0
    movlw    D
'1'
    
movwf    var0
    pagesel  xxx
    call     xxx
    banksel  var1 
<- 有加此行就正常,沒加此行 var1 就顯示不出來
    movlw    D
'2'
    
movwf    var1
    pagesel  xxx
    call     xxx

目前我程式架構如下
主程式 -> 在page0(0005h~07ffh)
          
call  初始化副程式
          call  LCD初始化副程式
主程式迴圈
          banksel LED 
-> 在bank0
          bsf     LED
          pagesel delay 
-> delay 在page1(0800h~0fffh)
          
call    delay
          pagesel 時間計算顯示副程式
          call    時間計算顯示副程式 
-> 時間計算顯示副程式在page0(0005h~07ffh)
          
banksel LED -> 在bank0
          bcf     LED
          pagesel delay 
-> delay 在page1(0800h~0fffh)
          
call    delay
          pagesel 主程式迴圈
          
goto    主程式迴圈


主程式在            page0
(0005h~07ffh)
初始化副程式在      page0(0005h~07ffh)
LCD初始化副程式在   page0(0005h~07ffh)
時間計算顯示副程式在page0(0005h~07ffh)

LCD顯示副程式在     page1(0800h~0fffh)
delay               page1(0800h~0fffh)


LCD初始化副程式
          banksel 
var -> 在bank0
          movlw   D
'1'
          
movwf   var
          
pagesel LCD顯示副程式 -> LCD顯示副程式在page1(0800h~0fffh)
          
call    LCD顯示副程式
          banksel 
var -> 在bank0
          movlw   D
'2'
          
movwf   var
          
pagesel LCD顯示副程式 -> LCD顯示副程式在page1(0800h~0fffh)
          
call    LCD顯示副程式
          banksel 
var -> 在bank0
          movlw   D
'3'
          
movwf   var
          
pagesel LCD顯示副程式 -> LCD顯示副程式在page1(0800h~0fffh)
          
call    LCD顯示副程式
          banksel 
var -> 在bank0
          movlw   D
'4'
          
movwf   var
          
pagesel LCD顯示副程式 -> LCD顯示副程式在page1(0800h~0fffh)
          
call    LCD顯示副程式

          banksel vvv 
-> bank0
          其它 ICON 顯示
          
return


如上所示LCD顯示副程式,在程式執行時 LCD 會顯示 00:00
如果第3個 banksel 
var 刪掉的話      LCD 會顯示 000
這是目前找到的狀況

我有ICD2 不過都只拿來燒程式用,debugger還不太會用,我等一下去網路學園看一下,上次有看到影音檔裏有講到,
SIM有些功能也還不會用,不知道有沒有SIM的中文教材?

以前程式還沒寫超過page0(0005h~07ffh),
這是第一次遇到程式寫超過2K,所以有點混亂
目前變數已使用 bank0 21h~64h ,預計程式寫好會用到 bank1 去,趕快在來去改程式

有結果再PO上來跟大家分享一下

發表於: 2009/11/25 14:44
頂部



(1) 2 3 »



:::

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

教育訓練中心

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