寫這篇文章,純粹是想為博客拉點點擊量。在博客園,游客訪問好像是不計入閱讀量的,而作為一個十八線博主,注冊用戶的訪問應(yīng)該以搜索引擎為主,博客園首頁為次,個位數(shù)的粉絲就別談了。
所以,希望各位從搜索引擎點進來的朋友,多多評論,有問題咱們一起討論。
我寫過AVR單片機教程,設(shè)計過自己的Arduino板,希望你相信我能給你帶來收獲。
我不想聽你放那么多屁,我只想知道周期為1ms的定時器中斷怎么寫!
什么是定時器
在ATmega328P單片機中,定時/計數(shù)器(Timer/Counter)是這樣的組件:它需要一個時鐘源,驅(qū)動一個8或16位的計數(shù)器遞增或遞減,當(dāng)計數(shù)器等于一個值時,會觸發(fā)一些操作,如產(chǎn)生中斷、翻轉(zhuǎn)引腳電平等。由于定時器的時鐘源是系統(tǒng)時鐘或外接晶振(一種產(chǎn)生頻率精準(zhǔn)的波的器件)分頻得到的,一旦設(shè)置好定時器的工作參數(shù),直到下次調(diào)整參數(shù),定時器都會按照預(yù)期工作,與CPU執(zhí)行的代碼無關(guān)。
為什么要用定時器
之前有過這樣的經(jīng)歷:
跟一個優(yōu)秀作品設(shè)計者聊了幾句,他說同時控制舵機和揚聲器很難控制好延時,揚聲器輸出的音樂節(jié)奏會亂。我第一反應(yīng)當(dāng)然是他沒有用定時器中斷,一問果然如此,并且他不知道中斷也不知道定時器。
還有一位同學(xué),寫TI計算器的程序。在他的一個作品中,每次循環(huán)的計算量不定,循環(huán)間隔也不定,導(dǎo)致游戲效果不好。他的解決方法是根據(jù)計算量計算出循環(huán)最后需要的延時,使得循環(huán)間隔基本保持不變。
這種思路是相當(dāng)優(yōu)秀的。但是如果有定時器可用的話,編程難度會降低,循環(huán)間隔的一致性也會更好,是更加優(yōu)秀的解決方案。
其實你一直在用定時器
Arduino Uno Rev3的3、5、6、9、10、11號端口可以使用analogWrite和tone函數(shù),它們的功能都是利用定時器實現(xiàn)的。用函數(shù)確實方便,但是只知使用而不知其原理就只能停留在技術(shù)的表面——Arduino的強大封裝對開發(fā)者的學(xué)習(xí)有兩面性。
定時器其實不知道什么3號端口,它只知道OC2B。兩種表示之間的對應(yīng)關(guān)系如下表:
端口編號 | 硬件符號 |
---|---|
3 | PD3(PCINT19/OC2B/INT1) |
5 | PD5(PCINT21/OC0B/T1) |
6 | PD6(PCINT22/OC0A/AIN0) |
9 | PB1(PCINT1/OC1A) |
10 | PB2(PCINT2/SS/OC1B) |
11 | PB3(PCINT3/OC2A/MOSI) |
寄存器
寄存器是開發(fā)者與硬件打交道的方式。從編程的語法上,可以把寄存器當(dāng)作是變量,可以對它賦值,也可以讀取它的數(shù)值。
寄存器中的位有幾種不同的組織結(jié)構(gòu),它們的存取方式也不盡相同:
TCCR1B寄存器中有4組參數(shù):ICNC1、ICES1、WGM1[3:2]、CS1[2:0]。現(xiàn)在你完全無需理解這些字母的含義,但是得對這些數(shù)字有個概念:WGM1[3:2]表示從WGM13到WGM12;TCCR1B中的1表示該寄存器屬于定時器1,ICNC1和WGM13等名字中的1也是;CS12中的2表示該位為CS1[2:0]位域(bitfield)中的第2位(最低位為第0位)。
ICNC1和ICES1都是1位的位域,它們的值可以是0或1;WGM1[3:2]是2位的位域,它的值可以是00、01、10、11;CS1[2:0]同理。
你也許一眼就能看出二進制的11在十進制中是3,但是你很可能看不出23對應(yīng)10111。在Arduino編程中(語言為C++),二進制數(shù)可以直接寫,無需與十進制或十六進制轉(zhuǎn)換。Arduino提供的方法是B10111,GCC提供的是0b10111(0b前綴字面量是C++14標(biāo)準(zhǔn)才規(guī)定的)。后者是我一直以來的習(xí)慣。
假如我要把這4個參數(shù)分別寫為1、0、0b00、0b101,就要寫:
TCCR1B = 1 << ICNC1
| 0 << ICES1
| 0b00 << WGM12
| 0b101 << CS10
;
全是0的可以不寫,寫是為了可讀性。ICNC1是寄存器的第7位,所以代碼中它的值就是7,其他位同理。
如果要判斷ICNC1位是否為1:
if (TCCR1B & 1 << ICNC1)
// ...
如果要讀取WGM1[3:2]位:
uint8_t wgm = (TCCR1B & 0b11 << WGM12) >> WGM12;
有的位因為不存在而不能寫,如TCCR1B的第5位;有的位即使存在但是只讀所以也不能寫;有的位域分布于多個寄存器中,如WGM1[3:0],低兩位在TCCR1A,高兩位在TCCR1B。
除了一個或多個位的位域以外,有些寄存器是整體使用的:
可以直接當(dāng)變量讀寫:
OCR0A = 233;
uint8_t ocr0a = OCR0A;
還有16位寄存器,雖然讀寫不能用一句匯編搞定,但是高級語言層面上可以:
TCNT1 = 10086;
uint16_t tcnt1 = TCNT1;
不超過255的話可以只寫低字節(jié)TCNT1L。
定時器相關(guān)寄存器總覽:
定時器的工作模式
讀數(shù)據(jù)手冊無疑是深入了解單片機的最好方法,可惜很多人沒這個耐心,幾十頁的英語也不是每個人都吃得消的。有些中文書打著介紹AVR單片機的幌子翻譯數(shù)據(jù)手冊,不僅沒有營養(yǎng)還漏洞百出,我不也推薦。寫這篇文章,也有避免后人重蹈覆轍的目的。
當(dāng)然,除了有代碼示例以外,本文再“詳解”也詳細(xì)不過數(shù)據(jù)手冊,不過至少可以讓你對定時器有個大致的印象,不致于讓你讀的時候一頭霧水。
ATmega328P有3個定時器:定時器0、定時器1和定時器2(簡單粗暴)。0和2都是8位的,2支持異步工作;1是16位的,精度更高,支持更多工作模式。我接觸過其他型號的單片機,AVR的定時器是相對簡單的。
定時器有3種工作模式:普通模式、CTC模式、PWM模式,其中PWM還分快速PWM、相位矯正(波形居中)PWM、相位與頻率矯正PWM(頻率可以任取,僅限定時器1)。
先講各種模式中共通的部分。定時器需要一個時鐘源,它可以是:
時鐘源 | 適用范圍 |
---|---|
無 | 所有 |
clkI/O/N,N=1,8,64,256,1024clkI/O/N,N=1,8,64,256,1024 (clkI/OclkI/O為系統(tǒng)時鐘,16MHz) | 定時器0/1 |
T0(4)引腳上升/下降沿 | 定時器0 |
T1(5)引腳上升/下降沿 | 定時器1 |
clkT2S/N,N=1,8,32,64,128,256,1024clkT2S/N,N=1,8,32,64,128,256,1024 (clkT2SclkT2S為系統(tǒng)時鐘或外置32kHz晶振) | 定時器2 |
工作模式之間的區(qū)別在于計數(shù)器的變化方向與范圍,介紹之前需要先下3個定義:
名稱 | 描述 |
---|---|
BOTTOM | 0,計數(shù)器的最小值 |
MAX | 對8位定時器為0xFF,對16位定時器為0xFFFF,計數(shù)器的最大可能值 |
TOP | 計數(shù)器達到這個值時,可能會被清零,或變化方向改變 對定時器0和2,可以為MAX或OCRnA 對定時器1,可以為0x00FF、0x01FF、0x03FF、OCR1A或ICR1 |
普通模式中,計數(shù)器從0開始增長到MAX,然后溢出回到0,周而復(fù)始。頻率為(clkclk為定時器時鐘頻率)
clkMAX+1clkMAX+1
CTC模式和快速PWM模式中,計數(shù)器從0開始增長到TOP,然后不再繼續(xù)增長而是直接回到0,重新開始增長。頻率為
clkTOP+1clkTOP+1
兩種相位矯正PWM模式中,計數(shù)器從0到TOP,再從TOP回到0,如此循環(huán)。頻率為
clk2TOPclk2TOP
計數(shù)器比較
當(dāng)計數(shù)器的值與OCRnA或OCRnB相等時,可以對OCnx的電平進行一些操作。
所有模式下,OCnx都可以不連接定時器。
非PWM模式下,可以把OCnx置為低電平、高電平或翻轉(zhuǎn)電平,tone就是這樣實現(xiàn)的;
PWM模式下,有正相和反相兩種模式,正相為OCRnx越大占空比越高,analogWrite就是這樣實現(xiàn)的;反相反之;有些配置下OCnA可以被翻轉(zhuǎn),請參考數(shù)據(jù)手冊。
由于引腳電平可以有宏觀表現(xiàn),我們終于可以開始寫代碼了。
先試試tone。在9號端口上連接一個蜂鳴器,使用定時器1的CTC模式,產(chǎn)生440Hz方波:
void setup() {
pinMode(9, OUTPUT);
TCCR1A = 0b01 << COM1A0 | 0b00 << WGM10;
TCCR1B = 0b01 << WGM12 | 0b001 << CS10;
OCR1A = 18181;
}
void loop() {
}
OCR1A = 18181是怎么來的呢?每次計數(shù)器與OCR1A相等電平翻轉(zhuǎn),兩次為一周期,頻率為clk2(OCR1A+1)clk2(OCR1A+1)。先取clkclk為不分頻試試,算出OCR1A為18181,沒有超過最大值65535,因此就取這個。如果超過了,就要把定時器頻率下調(diào),直到OCRnx合理為止。
void setup() {
pinMode(3, OUTPUT);
TCCR2A = 0b10 << COM2B0 | 0b11 << WGM20;
TCCR2B = 0 << WGM22 | 0b100 << CS20;
}
int brightness = 0;
int fadeAmount = 5;
void loop() {
OCR2B = brightness;
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255)
fadeAmount = -fadeAmount;
delay(30);
}
如果要讓程序以頻率為參數(shù)計算出合適的分頻系數(shù)與OCRnx值,可以參考tone的實現(xiàn)。
再試試analogWrite。在3號端口上連接一個LED,使用定時器2的快速PWM模式,實現(xiàn)呼吸燈的效果:
在快速PWM模式中,正相輸出占空比不能為0,反相輸出占空比不能為1,如果要達到這兩個值,需要斷開引腳與定時器的連接,用digitalWrite等方法輸出。
定時器中斷
懶得寫了,我抄我自己:
中斷,是單片機的精華。
當(dāng)一個事件發(fā)生時,CPU會停止當(dāng)前執(zhí)行的代碼,轉(zhuǎn)而處理這個事件,這就是一個中斷。觸發(fā)中斷的事件成為中斷源,處理事件的函數(shù)稱為中斷服務(wù)程序(ISR)。
中斷在單片機開發(fā)中有著舉足輕重的地位——沒有中斷,很多功能就無法實現(xiàn)。比如,在程序干別的事時接受UART總線上的輸入,而uart_scan_char等函數(shù)只會接收調(diào)用該函數(shù)后的輸入,先前的則會被忽略。利用中斷,我們可以在每次接受到一個字節(jié)輸入時把數(shù)據(jù)存放到緩沖區(qū)中,程序可以從緩沖區(qū)中讀取已經(jīng)接收的數(shù)據(jù)。
AVR單片機支持多種中斷,包括外部引腳中斷、定時器中斷、總線中斷等。每一個中斷被觸發(fā)時,通過中斷向量表跳轉(zhuǎn)到對應(yīng)ISR。如果一個中斷對應(yīng)的ISR不存在,鏈接器會把復(fù)位地址放在那里,如果這個中斷被響應(yīng)程序就會復(fù)位(但單片機不會復(fù)位)。
那么,我們以前從未寫過ISR,但經(jīng)常改變引腳電平,為什么沒有復(fù)位呢?因為中斷默認(rèn)是不開啟的。要啟用一個中斷,需要讓兩個位于不同寄存器中的位為1,一個是中斷對應(yīng)的中斷使能位,每個中斷都有各自的位,另一個是全局中斷使能位,位于寄存器SREG中,不能直接存取,需要通過定義在
頭文件中的sei()函數(shù)開全局中斷,相對地,cli()用于關(guān)全局中斷。
定時器中斷同樣有著舉足輕重的地位——操作系統(tǒng)的任務(wù)調(diào)度就是在定時器中斷中進行的。如果沒有中斷,CPU就在那自顧自地執(zhí)行代碼,它哪知道什么時候要調(diào)度呢?正因為定時器是獨立于CPU運行的,時間控制非常精準(zhǔn)且不受影響,因而能解決前面優(yōu)秀作品和計算器游戲中的問題。
什么時候需要定時器中斷呢?當(dāng)你發(fā)現(xiàn)沒有中斷的程序結(jié)構(gòu)不能勝任你的需求時,或者……把所有代碼都放進ISR。比如,每1ms產(chǎn)生一次中斷,先檢測按鍵是否被按下,根據(jù)其情況執(zhí)行相應(yīng)操作。
每個定時器都有3個中斷源:OVF、COMPA和COMPB(定時器1還有CAPT),分別在計數(shù)器溢出、與OCRnA、OCRnB相等時觸發(fā)。
產(chǎn)生精準(zhǔn)的定時器中斷,一般使用CTC模式和COMPA中斷,分頻系數(shù)與TOP值的計算方法與上面相同。
void setup() {
pinMode(13, OUTPUT);
TCCR1A = 0b00 << WGM10;
TCCR1B = 0b01 << WGM12 | 0b100 << CS10;
OCR1A = 31249;
TIMSK1 = 1 << OCIE1A;
sei();
}
ISR(TIMER1_COMPA_vect)
{
static bool light = true;
digitalWrite(13, light = !light);
}
void loop() {
}
在這個程序中:
WGM1[3:0] = 0b0100,定時器1工作于CTC模式,TOP為OCR1A;
CS1[2:0] = 0b100,時鐘為clkI/O/256,分頻系數(shù)N=256;
OCR1A為31249;
TIMSK1中OCIE1A置位,sei()開全局中斷,COMPA中斷啟用;
ISR(TIMER1_COMPA_vect)為定時器1COMPA中斷的函數(shù)頭,TIMER1_COMPA_vect這個名字可以當(dāng)成函數(shù)來用;
定時器中斷頻率為f=clkTOP+1=F_CPUN?(OCR1A+1)=16×106256×(31249+1)=2Hz。
一般而言,定時器中斷的頻率不要超過10kHz,1kHz已經(jīng)能夠應(yīng)付旋轉(zhuǎn)編碼器了。
進入中斷后,全局中斷會自動禁用,如果中斷代碼執(zhí)行期間發(fā)生了定時器事件,對應(yīng)的中斷不會觸發(fā),而是等到當(dāng)前中斷返回后再處理。可以用sei()開中斷,但是要小心代碼執(zhí)行時間接近或超過周期的情況,雖然定時準(zhǔn)了,但中斷嵌套導(dǎo)致內(nèi)存耗盡,程序跑飛了,得不償失??梢钥紤]另一種時間同步的方法,在loop的最后輪詢OCFnA直到它置位:
void setup() {
pinMode(13, OUTPUT);
TCCR1A = 0b00 << WGM10;
TCCR1B = 0b01 << WGM12 | 0b100 << CS10;
OCR1A = 31249;
}
void loop() {
static bool light = true;
digitalWrite(13, light = !light);
while (!(TIFR1 & 1 << OCF1A))
;
TIFR1 |= 1 << OCF1A;
}
這種程序結(jié)構(gòu)有定時作用,但不能中斷。頻率較高的時候,推薦使用后一種,頂多定時不準(zhǔn),程序還是能運行的。
照顧一下Arduino
Arduino庫非常貪心,在setup之前就把所有定時器都開啟了(也許你不同意,但我想把這種行為稱為“流氓”——想想百度網(wǎng)盤偷了你多少帶寬和流量!)。定時器0是時間相關(guān)函數(shù)的命根,除非你想把它割掉,否則不要動定時器0。如果你不動定時器0,5和6的analogWrite和tone可以照常使用。
如果你要用定時器1,如用以下代碼配置周期為1ms的定時器中斷:
void init_timer1()
{
TCCR1A = 0b00 << WGM10;
TCCR1B = 0b01 << WGM12 | 0b011 << CS10;
OCR1AL = 249;
TIMSK1 = 1 << OCIE1A;
sei();
}
void setup() {
init_timer1();
// ...
}
ISR(TIMER1_COMPA_vect)
{
// ...
}
void loop() {
// ...
}
需要注意:
由于Arduino庫在setup之前動過TCCR1A,不能認(rèn)為在執(zhí)行我們的代碼時TCCR1A為默認(rèn)值,因此即使我們想要的是默認(rèn)值也不能省略。
9和10端口不僅analogWrite和tone不能用,digitalWrite也不能用!請直接使用寄存器寫引腳電平,參見:AVR單片機教程——數(shù)字IO寄存器。
定時器2同理,3和11不能用。
void init_timer2()
{
TCCR2A = 0b10 << WGM20;
TCCR2B = 0 << WGM22 | 0b100 << CS20;
OCR2A = 249;
TIMSK2 = 1 << OCIE2A;
sei();
}
void setup() {
init_timer2();
// ...
}
ISR(TIMER2_COMPA_vect)
{
// ...
}
void loop() {
// ...
}
其他功能
有些工作模式下,向OCRnx寫值并不會立即更新它,而是會在計數(shù)器達到BOTTOM或TOP時更新,這保證了PWM占空比的正確性,但是CTC模式中OCRnx是立即更新的,可能會錯過匹配。
定時器1有輸入捕獲單元,可以對信號進行計數(shù),計數(shù)達到一定值時觸發(fā)中斷。外部中斷同樣可以捕獲引腳電平變化,但是中斷是有成本的,信號頻率不能太高,而定時器的捕獲功能更加強大。
定時器1有額外的ICR1寄存器,作為TOP值可以實現(xiàn)許多特殊的功能,并且由于定時器1是16位的,即使是復(fù)用時的精度也比定時器0和2高,見思考題1。
定時器2可以用外置晶振驅(qū)動,比較適合實現(xiàn)實時時鐘,可以在系統(tǒng)時鐘停止的省電狀態(tài)下工作。
上一篇:AVR單片機教程——ADC
下一篇:AVR單片機教程——走向高層
推薦閱讀
史海拾趣
Delus Corp公司起源于一家小型電子初創(chuàng)企業(yè),專注于研發(fā)和生產(chǎn)特定領(lǐng)域的電子設(shè)備。在公司成立初期,團隊面臨資金短缺和技術(shù)挑戰(zhàn)等重重困難。然而,他們憑借對技術(shù)的執(zhí)著追求和對市場的敏銳洞察,成功研發(fā)出一款具有創(chuàng)新性的電子產(chǎn)品,該產(chǎn)品在市場上引起了廣泛關(guān)注。這款產(chǎn)品不僅幫助公司獲得了初始資金,也奠定了公司在電子行業(yè)的技術(shù)領(lǐng)先地位。
為了應(yīng)對市場需求的多樣化和技術(shù)發(fā)展的快速變化,Horizon開始實施多元化產(chǎn)品布局戰(zhàn)略。公司不僅繼續(xù)深耕半導(dǎo)體芯片領(lǐng)域,還逐步拓展至電子元器件、智能設(shè)備、物聯(lián)網(wǎng)解決方案等多個領(lǐng)域。通過自主研發(fā)和合作并購等方式,Horizon不斷豐富產(chǎn)品線,滿足不同客戶的多樣化需求。這一戰(zhàn)略的實施不僅增強了公司的市場競爭力,也為公司的持續(xù)發(fā)展注入了新的動力。
隨著技術(shù)的不斷成熟和市場的不斷擴大,成都成電硅海公司開始尋求更廣闊的市場空間。公司積極參加國內(nèi)外各種行業(yè)展會和論壇,與業(yè)界同行進行深入的交流和合作。同時,公司還加大了對海外市場的開拓力度,成功將產(chǎn)品打入歐美等發(fā)達國家市場。這一系列的市場拓展舉措,使得成都成電硅海公司的知名度不斷提升,市場份額也逐漸擴大。
深圳市飛翼科技有限公司自2006年成立以來,一直致力于模擬與數(shù)字MCU混合芯片領(lǐng)域的研究、設(shè)計和開發(fā)應(yīng)用。公司主攻電容式觸摸感應(yīng)按鍵芯片設(shè)計,憑借多項獨有的專利技術(shù),成功突破了行業(yè)內(nèi)的技術(shù)難點。經(jīng)過多年的努力,飛翼科技已成為該應(yīng)用領(lǐng)域中技術(shù)最全面、市場份額最大的公司之一。其電容式觸摸感應(yīng)芯片廣泛應(yīng)用于各類電子產(chǎn)品中,為用戶帶來了更加便捷、智能的交互體驗。
江蘇飛翼智能科技有限公司成立于2023年,該公司迅速將無人機技術(shù)與大數(shù)據(jù)技術(shù)相結(jié)合,實現(xiàn)了從傳統(tǒng)無人機表演企業(yè)向無人機應(yīng)用型企業(yè)的轉(zhuǎn)型。通過自主研發(fā)和技術(shù)創(chuàng)新,飛翼智能的無人機在地理測繪、土方開挖計算、三維建模等領(lǐng)域展現(xiàn)出強大實力。例如,在地理測繪領(lǐng)域,無人機通過鏡頭采集地面照片,結(jié)合后期處理,能夠高效完成數(shù)據(jù)測繪,大大降低了人工用量,提高了工作效率。這一技術(shù)的成功應(yīng)用,不僅為公司贏得了市場認(rèn)可,也推動了無人機技術(shù)的智能化發(fā)展。
面對數(shù)字化浪潮的沖擊,ECLIPTEK公司積極擁抱數(shù)字化轉(zhuǎn)型和智能制造。公司引入大數(shù)據(jù)、云計算和人工智能等先進技術(shù),推動生產(chǎn)過程的智能化和自動化。通過數(shù)字化轉(zhuǎn)型和智能制造,ECLIPTEK不僅提高了生產(chǎn)效率和質(zhì)量,還降低了生產(chǎn)成本和能源消耗。這一轉(zhuǎn)型為公司未來的發(fā)展奠定了堅實的基礎(chǔ)。
這兩天終于把uCOS2.86移植到自己的板上了,自己在DEMO框架中寫了一個簡單的測試,下載到FLASH中可以正常調(diào)試和運行。試著把它改到在SRAM中運行,希望以后調(diào)試時可以減少燒錄FLASH次數(shù)。照著參考做了一些改動:將STM32F_FLASH.ICF 改為STM ...… 查看全部問答∨ |
9月10日到9月20日:查找資料。了解XINILIX的開發(fā)工具的使用方法和產(chǎn)品的定義、模塊的劃分。9月21日到9 月25日:各模塊的硬件結(jié)構(gòu)的定義和設(shè)計。9月26日到9月30日:模塊的整合。測試系統(tǒng)的性能。10月1日到10月10日:文檔的整理?!? 查看全部問答∨ |
本人初入物聯(lián)網(wǎng)行業(yè),孜孜以求中。。。目前接觸比較多的是富士通的RFID芯片,有幾個菜鳥的問題請教:在RFID中為什么包括富士通和TI這些大佬都采用鐵電存儲(FRAM)技術(shù)(我們用的富士通MB97R803/804系列都配置FRAM),不是說這個技術(shù)因為難以大容 ...… 查看全部問答∨ |
|
關(guān)于cc2530協(xié)議棧里的休眠和喚醒機制的疑問 請問有大俠了解cc2530協(xié)議棧里的休眠和喚醒機制嗎? 怎么控制休眠的時間長短呢? halSleep( uint16 osal_timeout )這個函數(shù)傳入的參數(shù)是osal_next_timeout()獲取的 不明白這個獲取時間的函數(shù)的意義 我在halSleep( uint16 osal_timeout )函數(shù)下 ...… 查看全部問答∨ |
|
本帖最后由 dontium 于 2015-1-23 11:21 編輯 1/f噪聲構(gòu)成了低頻噪聲的主要部分。一般只關(guān)注0.1hz-10hz。而雙極性運放的1/f噪聲要小一些。 對于低頻應(yīng)用,消除1/f噪聲的辦法是采用零漂移運放,如自穩(wěn)零,斬波,或者兩者的結(jié)合,如ADI的AD862 ...… 查看全部問答∨ |
今天遇到一件奇怪的事情,我用IR2110驅(qū)動IRF3710,在不加mos管之前,2110的高端輸出是好的,波形如下: 可是接上mos管之后,驅(qū)動波形就變成這個樣子了: 不知道這個是怎么回事,,,,,,,, … 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- BOE(京東方)聯(lián)合榮耀打造榮耀Magic V5 以領(lǐng)先LTPO技術(shù)打造行業(yè)新標(biāo)桿
- 華為ADS 4發(fā)布:多傳感器融合,提升自動駕駛安全性
- 曉鶯說:線控制動變革風(fēng)云
- 大眾商用車推出AirConsole 將其信息娛樂系統(tǒng)擴展為游戲機
- 福州大學(xué)發(fā)明新機器視覺傳感器 可使機器人對極端光照做出超快反應(yīng)
- 蘋果獲沉浸式虛擬顯示器相關(guān)的專利
- 英特爾汽車“折戟”,十年布局一夜歸零
- 寶馬自動充電機器人概念驗證成功,引領(lǐng)無人充電新時代
- 智駕模式下LQR最優(yōu)算法在EPS中的應(yīng)用研究
- 6月超17款人形機器人新品推出
- 【已結(jié)束】RIGOL直播|示波器、可編程直流電源應(yīng)用分享
- EEWorld邀你來拆解(第15期)拆起來!
- 一鍵獲取【TI 五大工業(yè)參考設(shè)計 FAQ】
- EEWORLD 示波器問卷有獎大調(diào)查
- 電源技術(shù)專輯第1期:快充參考設(shè)計大集合!
- 學(xué)習(xí)有禮:一場干貨滿滿的電源管理之旅!
- 安森美半導(dǎo)體移動、消費及汽車應(yīng)用圖像穩(wěn)定方案下載有禮!
- 【已結(jié)束】RIGOL直播|示波器、可編程直流電源應(yīng)用分享
- 開發(fā)板芯幣競拍,每日一款!今日競拍開發(fā)板:Banana PI D1
- ADI 痛點問題探索季:征集 | 曬電機控制痛點與難題,一起尋求最優(yōu)解!
- 歐司朗大陸合資公司推智能數(shù)字HD頭燈系統(tǒng) 提升車輛夜晚駕駛安全
- 2019世界新能源汽車大會釋放了哪些積極信號?
- LG G8S ThinQ臺版發(fā)布了:劉海屏+背部指紋
- 紅黑經(jīng)典搭配 realme X蜘蛛俠定制禮盒曝光
- 初創(chuàng)公司融資約1.8億元 研發(fā)激光發(fā)射器與傳感器分離的激光雷達系統(tǒng)
- 紫光集團重組重要進展:七家投資人擬參與戰(zhàn)投債務(wù)達千億
- 格力新款手機過3C認(rèn)證:驍龍870芯片+30W快充
- AVC Revo:限電已讓中國面板組件和LCD模塊產(chǎn)量降30%
- 和芯微電子發(fā)布:國內(nèi)首套2.4G&5G高功率WiFi6 FEM芯片
- “軍團”集結(jié)后首筆大單!華為簽全球最大儲能項目