目前共有19篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:港澳繁體▼
 
點擊 回復
1015 18
【實驗】使用定時器的外部時鐘模式對多諧振盪器的性能進行評估
一派掌門 二十級
1樓 發表于:2017-4-2 11:59
【實驗時用到的程序】
#include <stm32f10x.h>

const uint8_t seg8[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};

void delay(void)
{
    uint16_t i;
    for (i = 0; i < 20000; i++);
}

void ser_in(uint8_t data)
{
    uint8_t i;
    for (i = 0; i < 8; i++)
    {
        GPIO_ResetBits(GPIOB, GPIO_Pin_9); // SCLK=>PB9
        if (data & 0x80)
            GPIO_SetBits(GPIOB, GPIO_Pin_7); // DIO=>PB7
        else
            GPIO_ResetBits(GPIOB, GPIO_Pin_7);
        data <<= 1;
        GPIO_SetBits(GPIOB, GPIO_Pin_9);
    }
}

void par_out(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_8); // RCLK=>PB8
    GPIO_SetBits(GPIOB, GPIO_Pin_8);
}

void seg_scan(void)
{
    uint8_t numbuf = TIM_GetCounter(TIM2);
    uint8_t i;
    for (i = 0; i < 2; i++) // 只顯示兩位數字
    {
        ser_in(seg8[numbuf % 10]);
        ser_in(1 << i);
        par_out();
        delay();
        numbuf /= 10;
    }
}

int main(void)
{
    GPIO_InitTypeDef gpio;
    TIM_ICInitTypeDef timic;
    TIM_TimeBaseInitTypeDef tim;
   
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
   
    // 時鐘輸入引腳配置
    gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    gpio.GPIO_Pin = GPIO_Pin_0;
    GPIO_Init(GPIOA, &gpio);
   
    // 數碼管掃描管腳配置
    gpio.GPIO_Mode = GPIO_Mode_Out_PP;
    gpio.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
    gpio.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &gpio);
   
    // 配置定時器的計數範圍
    TIM_TimeBaseStructInit(&tim);
    tim.TIM_CounterMode = TIM_CounterMode_Down; // 向下計數
    tim.TIM_Period = 99; // 最大計數值
    tim.TIM_Prescaler = 0; // 不分頻
    TIM_TimeBaseInit(TIM2, &tim);
   
    // 配置定時器2的通道1
    timic.TIM_Channel = TIM_Channel_1;
    timic.TIM_ICFilter = 0; // 不消抖
    timic.TIM_ICPolarity = TIM_ICPolarity_Rising; // 上升沿觸發 (注意: 不能設為TIM_ICPolarity_BothEdge, 根本就沒有雙邊沿檢測功能)
    //timic.TIM_ICPrescaler = TIM_ICPSC_DIV1; // 這個選項在外部時鐘模式中無效(輸入捕獲模式才會用到)
    timic.TIM_ICSelection = TIM_ICSelection_DirectTI; // TI1->IC1=PA0
    TIM_ICInit(TIM2, &timic);
   
    // 外部時鐘模式1
    TIM_SelectInputTrigger(TIM2, TIM_TS_TI1FP1); // TRGI=TI1
    TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_External1); // 把時鐘信號設為TRGI
    TIM_Cmd(TIM2, ENABLE);
   
    while (1)
        seg_scan();
}
一派掌門 二十級
2樓 發表于:2017-4-2 12:55
【多諧振盪器的電路配置】
充電端接200Ω電阻和一個LED燈(電阻的大小決定輸出端上升沿的跳變時間)。
放電端接100kΩ電阻(電阻大小決定輸出端脈衝的寬度)。
這裏要注意的是,放電電阻不可以接的太大(如200kΩ),否則三極管會處於放大狀態,不僅使輸出的低電平電壓升高(如升高到2V甚至更高,單片機端將無法正確地檢測出輸出電平),而且很可能使整個多諧振盪器不能正常工作,甚至無法起振。
電容器為10μF。電容器靠近LED的那一端為正極,接三極管基極的那一端為負極。

當右輸出端接地時,兩個LED燈都亮,用萬用表測得左輸出端(三極管的集電極)的電壓為0.97V(輸出的低電平電壓)。這表明三極管導通時處於放大狀態,不過這並沒有什麼影響。
現在懸空右輸出端,將左輸出端接到單片機的PA0口上(定時器2的輸入通道1)。

當左LED燈熄滅時,左電容器通過充電小電阻快速充電,輸出端迅速從低電平(0.97V)升高到高電平(用萬用表測出來大約是3.4V,理論上是4.3V),並保持在高電平,直到右電容器放電完畢。
充電時間 = - 充電電阻大小 x 電容大小 x ln[(E - 末電壓) / (E - 初電壓)]
其中E為最大充電電壓,由於充電時電容器和充電電阻並聯在放電電阻兩端,而放電電阻又和右三極管的發射結是串聯的,發射結的導通電壓是0.7V,因此實際上電容器最大只能充到E=5V-0.7V=4.3V
因此上升沿時間 = - 200 * 10 * 10^-6 * ln[(4.3-4.29) / (4.3-(-0.7))] (初電壓是-0.7V,因為放電完畢時電容器被反向充電到了0.7V,現在充電前必須先釋放掉這部分電壓)
≈ 12.43ms

當左LED燈亮起時,由於左三極管導通,左電容器的正極外接電壓<負極外接電壓,而正極內部電壓>負極內部電壓(因為之前已經充好電了),所以此時電源對該電容器進行反向充電(也就是放電),先從4.3V放到0V,再充到0.7V使右三極管導通,可以看作是從-4.3V充電到0.7V。這段時間左輸出端的電壓一直為0.97V,輸出低電平。右三極管的基極電壓從負壓(-4.3V)變到正壓(0.7V)。
持續的時間 = - 放電電阻大小 x 電容大小 x ln[(E - 末電壓) / (E - 初電壓)]
= - 100 * 10^3 * 10 * 10^-6 * ln[(E - (+0.7))/(E - (-4.3))] (E=5V)
≈ 0.77s
(計算時假定的是三極管是飽和導通。因為現在三極管是處於放大狀態,所以實際時間比這個時間要短。)

因此,左輸出端的上升沿出現在左LED燈熄滅的瞬間(電容器充電的速度非常快),程序中的定時器2就是對上升沿進行計數。
 
一派掌門 二十級
3樓 發表于:2017-4-2 13:01
編譯並下載單片機程序,實驗發現,雖然在程序中沒有開通道1的消抖功能,並且GPIO配置的是浮空輸入,但數碼管的數字顯示很穩定,僅當左LED燈熄滅時才減1(向下計數)。
把左LED燈短路,計時速度明顯加快,並且數碼管有時減2有時減1,振盪變得不穩定。
如果把兩個LED燈都短路,則數碼管每次減去的數毫無規律,抖動非常厲害。
 
一派掌門 二十級
4樓 發表于:2017-4-2 13:05

以下是多諧振盪器的電路圖。

本實驗把充電電阻R1和R4的阻值大小改成了200Ω,同時串聯了LED燈。

 
一派掌門 二十級
6樓 發表于:2017-4-2 13:07
在本次實驗中,Q1、Q2採用的三極管型號是9013NPN型。
 
一派掌門 二十級
7樓 發表于:2017-4-2 13:13
庫函數中有一個TIxExternalClockConfig函數可以更簡單地設置外部時鐘模式1:
TIM_TIxExternalClockConfig(TIM2, TIM_TIxExternalCLK1Source_TI1, TIM_ICPolarity_Rising, 0);
【示例程序】
int main(void)
{
    GPIO_InitTypeDef gpio;
    TIM_TimeBaseInitTypeDef tim;
   
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
   
    // 時鐘輸入引腳配置
    gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    gpio.GPIO_Pin = GPIO_Pin_0;
    GPIO_Init(GPIOA, &gpio);
   
    // 數碼管掃描管腳配置
    gpio.GPIO_Mode = GPIO_Mode_Out_PP;
    gpio.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
    gpio.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &gpio);
   
    // 配置定時器的計數範圍
    TIM_TimeBaseStructInit(&tim);
    tim.TIM_CounterMode = TIM_CounterMode_Down; // 向下計數
    tim.TIM_Period = 99; // 最大計數值
    tim.TIM_Prescaler = 0; // 不分頻
    TIM_TimeBaseInit(TIM2, &tim);
   
    // 外部時鐘模式1
    TIM_TIxExternalClockConfig(TIM2, TIM_TIxExternalCLK1Source_TI1, TIM_ICPolarity_Rising, 0);
    TIM_Cmd(TIM2, ENABLE);
   
    while (1)
        seg_scan();
}
 
一派掌門 二十級
8樓 發表于:2017-4-2 13:24
TIM_ETRClockMode1Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
這個函數也是配置的是模式1,但是使用的引腳卻是ETR引腳,即TRGI=ETR。
而之前的TIM_TIxExternalClockConfig函數使用的是TI1引腳,即TRGI=TI1FP1。
定時器2的ETR引腳和TI1引腳都是PA0,但對於定時器1來說兩個引腳是分開的。
 
一派掌門 二十級
9樓 發表于:2017-4-2 13:26
// 外部時鐘模式2
// 使用ETR (External Trigger)引腳作為外部時鐘信號
TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
TIM_Cmd(TIM2, ENABLE);
 
一派掌門 二十級
10樓 發表于:2017-4-2 14:16
現在多諧振盪器又出現了不穩定情況:有時候數碼管減的數字是2
 
一派掌門 二十級
11樓 發表于:2017-4-2 14:39
【實驗2:使用STM32的PWM輸入模式測量多諧振盪器的脈衝寬度】
#include <stm32f10x.h>

const uint8_t seg8[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};

void delay(void)
{
    uint16_t i;
    for (i = 0; i < 20000; i++);
}

void ser_in(uint8_t data)
{
    uint8_t i;
    for (i = 0; i < 8; i++)
    {
        GPIO_ResetBits(GPIOB, GPIO_Pin_9); // SCLK=>PB9
        if (data & 0x80)
            GPIO_SetBits(GPIOB, GPIO_Pin_7); // DIO=>PB7
        else
            GPIO_ResetBits(GPIOB, GPIO_Pin_7);
        data <<= 1;
        GPIO_SetBits(GPIOB, GPIO_Pin_9);
    }
}

void par_out(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_8); // RCLK=>PB8
    GPIO_SetBits(GPIOB, GPIO_Pin_8);
}

void seg_scan(void)
{
    uint16_t numbuf;
    uint8_t i;
    if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_1) == SET)
        numbuf = TIM_GetCapture1(TIM2); // 按鍵鬆開時顯示上次脈衝的總長度(單位: 秒)
    else
        numbuf = TIM_GetCapture2(TIM2); // 按鍵按下時顯示高電平的長度(單位: 秒)
    for (i = 0; i < 5; i++)
    {
        if (i == 4)
            ser_in(seg8[numbuf % 10] & 0x7f); // 顯示小數點
        else
            ser_in(seg8[numbuf % 10]);
        ser_in(1 << i);
        par_out();
        delay();
        numbuf /= 10;
    }
}

int main(void)
{
    GPIO_InitTypeDef gpio;
    TIM_ICInitTypeDef timic;
    TIM_TimeBaseInitTypeDef tim;
   
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
   
    // 時鐘輸入引腳配置
    gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    gpio.GPIO_Pin = GPIO_Pin_0;
    GPIO_Init(GPIOA, &gpio);
   
    // 數碼管掃描管腳配置
    gpio.GPIO_Mode = GPIO_Mode_Out_PP;
    gpio.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
    gpio.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &gpio);
   
    // 按鍵管腳PC1配置
    gpio.GPIO_Mode = GPIO_Mode_IPU;
    gpio.GPIO_Pin = GPIO_Pin_1;
    GPIO_Init(GPIOC, &gpio);
   
    // 配置定時器的計數範圍
    TIM_TimeBaseStructInit(&tim);
    tim.TIM_CounterMode = TIM_CounterMode_Up;
    tim.TIM_Period = 0xffff; // 最大計數值
    tim.TIM_Prescaler = 7199; // 7200分頻, 得到基準時鐘0.1ms
    TIM_TimeBaseInit(TIM2, &tim);
   
    // 配置定時器2的通道1
    timic.TIM_Channel = TIM_Channel_1;
    timic.TIM_ICFilter = 0; // 不消抖
    timic.TIM_ICPolarity = TIM_ICPolarity_Rising; // 通道1捕獲上升沿
    timic.TIM_ICPrescaler = TIM_ICPSC_DIV1;
    timic.TIM_ICSelection = TIM_ICSelection_DirectTI; // TI1->IC1=PA0
    TIM_ICInit(TIM2, &timic);
   
    // 配置定時器2的通道2
    timic.TIM_Channel = TIM_Channel_2;
    timic.TIM_ICFilter = 0;
    timic.TIM_ICPolarity = TIM_ICPolarity_Falling; // 通道2捕獲下降沿
    timic.TIM_ICPrescaler = TIM_ICPSC_DIV1;
    timic.TIM_ICSelection = TIM_ICSelection_IndirectTI; // TI2->IC1=PA0
    TIM_ICInit(TIM2, &timic);
   
    TIM_SelectInputTrigger(TIM2, TIM_TS_TI1FP1); // TRGI=TI1
    TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); // 上升沿使定時器歸0
    TIM_Cmd(TIM2, ENABLE);
   
    while (1)
        seg_scan();
}
 
一派掌門 二十級
12樓 發表于:2017-4-2 14:42
幾次脈衝總長度(=高電平時間+低電平時間)數據:
0.7611s
0.7593s
0.7583s
0.7596s
0.7590s
0.7595s
0.7586s
幾次高電平長度數據:
0.3602s
0.3575s
0.3593s
0.3594s
0.3582s
 
一派掌門 二十級
13樓 發表于:2017-4-2 15:37
【將測量結果通過串口發送到電腦上,方便複製】
#include <stm32f10x.h>
#include <string.h>

const uint8_t seg8[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
char str[] = "Total: x.xxxxs  High Level: x.xxxxs\r\n";

void delay(void)
{
    uint16_t i;
    for (i = 0; i < 20000; i++);
}

void ser_in(uint8_t data)
{
    uint8_t i;
    for (i = 0; i < 8; i++)
    {
        GPIO_ResetBits(GPIOB, GPIO_Pin_9); // SCLK=>PB9
        if (data & 0x80)
            GPIO_SetBits(GPIOB, GPIO_Pin_7); // DIO=>PB7
        else
            GPIO_ResetBits(GPIOB, GPIO_Pin_7);
        data <<= 1;
        GPIO_SetBits(GPIOB, GPIO_Pin_9);
    }
}

void par_out(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_8); // RCLK=>PB8
    GPIO_SetBits(GPIOB, GPIO_Pin_8);
}

void seg_scan(void)
{
    uint16_t numbuf;
    uint8_t i;
    if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_1) == SET)
        numbuf = TIM_GetCapture1(TIM2); // 按鍵鬆開時顯示上次脈衝的總長度(單位: 秒)
    else
        numbuf = TIM_GetCapture2(TIM2); // 按鍵按下時顯示高電平的長度(單位: 秒)
    for (i = 0; i < 5; i++)
    {
        __disable_irq();
        if (i == 4)
            ser_in(seg8[numbuf % 10] & 0x7f); // 顯示小數點
        else
            ser_in(seg8[numbuf % 10]);
        ser_in(1 << i);
        par_out();
        __enable_irq();
        delay();
        numbuf /= 10;
    }
}

int main(void)
{
    DMA_InitTypeDef dma;
    GPIO_InitTypeDef gpio;
    NVIC_InitTypeDef nvic;
    TIM_ICInitTypeDef timic;
    TIM_TimeBaseInitTypeDef tim;
    USART_InitTypeDef usart;
   
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_USART1, ENABLE);
   
    // 時鐘輸入引腳和串口接收引腳配置
    gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    gpio.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_10;
    GPIO_Init(GPIOA, &gpio);
   
    // 串口發送引腳配置
    gpio.GPIO_Mode = GPIO_Mode_AF_PP;
    gpio.GPIO_Pin = GPIO_Pin_9;
    gpio.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &gpio);
   
    // 數碼管掃描管腳配置
    gpio.GPIO_Mode = GPIO_Mode_Out_PP;
    gpio.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
    gpio.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &gpio);
   
    // 按鍵管腳PC1配置
    gpio.GPIO_Mode = GPIO_Mode_IPU;
    gpio.GPIO_Pin = GPIO_Pin_1;
    GPIO_Init(GPIOC, &gpio);
   
    // 配置定時器的計數範圍
    TIM_TimeBaseStructInit(&tim);
    tim.TIM_CounterMode = TIM_CounterMode_Up;
    tim.TIM_Period = 0xffff; // 最大計數值
    tim.TIM_Prescaler = 7199; // 7200分頻, 得到基準時鐘0.1ms
    TIM_TimeBaseInit(TIM2, &tim);
   
    // 配置定時器2的通道1
    timic.TIM_Channel = TIM_Channel_1;
    timic.TIM_ICFilter = 0; // 不消抖
    timic.TIM_ICPolarity = TIM_ICPolarity_Rising; // 通道1捕獲上升沿
    timic.TIM_ICPrescaler = TIM_ICPSC_DIV1;
    timic.TIM_ICSelection = TIM_ICSelection_DirectTI; // TI1->IC1=PA0
    TIM_ICInit(TIM2, &timic);
   
    // 配置定時器2的通道2
    timic.TIM_Channel = TIM_Channel_2;
    timic.TIM_ICFilter = 0;
    timic.TIM_ICPolarity = TIM_ICPolarity_Falling; // 通道2捕獲下降沿
    timic.TIM_ICPrescaler = TIM_ICPSC_DIV1;
    timic.TIM_ICSelection = TIM_ICSelection_IndirectTI; // TI2->IC1=PA0
    TIM_ICInit(TIM2, &timic);
   
    TIM_SelectInputTrigger(TIM2, TIM_TS_TI1FP1); // TRGI=TI1
    TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); // 上升沿使定時器歸0
    TIM_Cmd(TIM2, ENABLE);
   
    // 配置串口
    USART_StructInit(&usart);
    usart.USART_BaudRate = 115200;
    usart.USART_Mode = USART_Mode_Tx;
    USART_Init(USART1, &usart);
    USART_Cmd(USART1, ENABLE);
   
    // 配置串口DMA
    USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);
    dma.DMA_BufferSize = 0;
    dma.DMA_DIR = DMA_DIR_PeripheralDST;
    dma.DMA_M2M = DMA_M2M_Disable;
    dma.DMA_MemoryBaseAddr = (uint32_t)str;
    dma.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
    dma.DMA_MemoryInc = DMA_MemoryInc_Enable;
    dma.DMA_Mode = DMA_Mode_Normal;
    dma.DMA_PeripheralBaseAddr = (uint32_t)&USART1->DR;
    dma.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
    dma.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
    dma.DMA_Priority = DMA_Priority_Low;
    DMA_Init(DMA1_Channel4, &dma);
   
    // 配置定時器中斷
    TIM_ITConfig(TIM2, TIM_IT_Trigger, ENABLE);
    nvic.NVIC_IRQChannel = TIM2_IRQn;
    nvic.NVIC_IRQChannelCmd = ENABLE;
    nvic.NVIC_IRQChannelPreemptionPriority = 0;
    nvic.NVIC_IRQChannelSubPriority = 0;
    NVIC_Init(&nvic);
   
    while (1)
        seg_scan();
}

void TIM2_IRQHandler(void)
{
    uint8_t i, j;
    uint16_t numbuf;
    TIM_ClearITPendingBit(TIM2, TIM_IT_Trigger);
    for (i = 7; i < 30; i += 21)
    {
        if (i == 7)
            numbuf = TIM_GetCapture1(TIM2);
        else
            numbuf = TIM_GetCapture2(TIM2);
        for (j = 5; j <= 5; j--)
        {
            if (j == 1)
                continue;
            str[i + j] = '0' + numbuf % 10;
            numbuf /= 10;
        }
    }
    DMA_Cmd(DMA1_Channel4, DISABLE);
    DMA_SetCurrDataCounter(DMA1_Channel4, strlen(str));
    DMA_Cmd(DMA1_Channel4, ENABLE);
}
 
一派掌門 二十級
14樓 發表于:2017-4-2 15:38
【測得的數據】
Total: 0.0519s  High Level: 0.0000s
Total: 0.7598s  High Level: 0.3597s
Total: 0.7676s  High Level: 0.3614s
Total: 0.7684s  High Level: 0.3618s
Total: 0.7688s  High Level: 0.3635s
Total: 0.7653s  High Level: 0.3630s
Total: 0.7654s  High Level: 0.3606s
Total: 0.7639s  High Level: 0.3617s
Total: 0.7643s  High Level: 0.3592s
Total: 0.7602s  High Level: 0.3556s
Total: 0.7624s  High Level: 0.3595s
Total: 0.7605s  High Level: 0.3587s
Total: 0.7571s  High Level: 0.3535s
Total: 0.7599s  High Level: 0.3567s
Total: 0.7605s  High Level: 0.3572s
Total: 0.7566s  High Level: 0.3520s
Total: 0.7593s  High Level: 0.3547s
Total: 0.7553s  High Level: 0.3543s
Total: 0.7537s  High Level: 0.3493s
Total: 0.7555s  High Level: 0.3542s
Total: 0.7562s  High Level: 0.3532s
Total: 0.7601s  High Level: 0.3570s
Total: 0.7526s  High Level: 0.3523s
Total: 0.7596s  High Level: 0.3577s
Total: 0.7576s  High Level: 0.3553s
Total: 0.7571s  High Level: 0.3537s
Total: 0.7537s  High Level: 0.3542s
Total: 0.7585s  High Level: 0.3560s
Total: 0.7562s  High Level: 0.3522s
Total: 0.7548s  High Level: 0.3541s
Total: 0.7539s  High Level: 0.3499s
Total: 0.7534s  High Level: 0.3514s
Total: 0.7565s  High Level: 0.3526s
Total: 0.7538s  High Level: 0.3522s
Total: 0.7582s  High Level: 0.3560s
Total: 0.7521s  High Level: 0.3509s
Total: 0.7551s  High Level: 0.3516s
Total: 0.7515s  High Level: 0.3493s
Total: 0.7538s  High Level: 0.3527s
Total: 0.7498s  High Level: 0.3497s
Total: 0.7565s  High Level: 0.3545s
Total: 0.7529s  High Level: 0.3523s
Total: 0.7493s  High Level: 0.3488s
Total: 0.7500s  High Level: 0.3498s
Total: 0.7569s  High Level: 0.3547s
Total: 0.7521s  High Level: 0.3511s
Total: 0.7496s  High Level: 0.3492s
Total: 0.7502s  High Level: 0.3498s
Total: 0.7572s  High Level: 0.3550s
Total: 0.7522s  High Level: 0.3519s
Total: 0.7551s  High Level: 0.3512s
Total: 0.7495s  High Level: 0.3463s
Total: 0.7535s  High Level: 0.3522s
Total: 0.7517s  High Level: 0.3514s
Total: 0.7499s  High Level: 0.3500s
Total: 0.7503s  High Level: 0.3504s
Total: 0.7543s  High Level: 0.3504s
Total: 0.7543s  High Level: 0.3535s
 
一派掌門 二十級
15樓 發表于:2017-4-2 15:45
【TIM2_IRQHandler函數容錯處理】
// 僅當上次發送完畢後再發送新內容, 否則丟棄本次測量結果
if (DMA_GetCurrDataCounter(DMA1_Channel4) == 0)
{
    DMA_Cmd(DMA1_Channel4, DISABLE);
    DMA_SetCurrDataCounter(DMA1_Channel4, strlen(str));
    DMA_Cmd(DMA1_Channel4, ENABLE);
}
 
一派掌門 二十級
16樓 發表于:2017-4-2 15:46
【將左LED燈短路後測得的數據】
Total: 0.2129s  High Level: 0.0011s
Total: 0.0042s  High Level: 0.0022s
Total: 0.0066s  High Level: 0.0009s
Total: 0.4424s  High Level: 0.4061s
Total: 0.4432s  High Level: 0.4025s
Total: 0.0032s  High Level: 0.0006s
Total: 0.4497s  High Level: 0.4123s
Total: 0.4442s  High Level: 0.0000s
Total: 0.0029s  High Level: 0.0008s
Total: 0.4509s  High Level: 0.4147s
Total: 0.4501s  High Level: 0.4133s
Total: 0.0049s  High Level: 0.0049s
Total: 0.4339s  High Level: 0.3970s
Total: 0.4497s  High Level: 0.4138s
Total: 0.4507s  High Level: 0.4138s
Total: 0.4589s  High Level: 0.4210s
Total: 0.4336s  High Level: 0.0020s
Total: 0.0033s  High Level: 0.0010s
Total: 0.4332s  High Level: 0.4002s
Total: 0.0051s  High Level: 0.0033s
Total: 0.4352s  High Level: 0.4035s
Total: 0.0057s  High Level: 0.0032s
Total: 0.4301s  High Level: 0.3939s
Total: 0.4495s  High Level: 0.4122s
Total: 0.4494s  High Level: 0.4133s
Total: 0.4509s  High Level: 0.4145s
Total: 0.4489s  High Level: 0.4128s
Total: 0.4388s  High Level: 0.4025s
Total: 0.4503s  High Level: 0.4142s
Total: 0.4394s  High Level: 0.4033s
Total: 0.4498s  High Level: 0.4123s
Total: 0.4489s  High Level: 0.4118s
Total: 0.4495s  High Level: 0.4122s
Total: 0.4402s  High Level: 0.4039s
Total: 0.4500s  High Level: 0.4129s
Total: 0.4530s  High Level: 0.4191s
Total: 0.4564s  High Level: 0.4200s
Total: 0.4389s  High Level: 0.4026s
Total: 0.4397s  High Level: 0.4027s
Total: 0.4492s  High Level: 0.4118s
Total: 0.4500s  High Level: 0.4131s
Total: 0.4495s  High Level: 0.4123s
Total: 0.4601s  High Level: 0.4227s
Total: 0.4395s  High Level: 0.4038s
Total: 0.4488s  High Level: 0.4108s
Total: 0.4403s  High Level: 0.4046s
Total: 0.4402s  High Level: 0.4042s
Total: 0.4386s  High Level: 0.4024s
Total: 0.4443s  High Level: 0.0001s
Total: 0.0002s  High Level: 0.0001s
Total: 0.4554s  High Level: 0.4222s
Total: 0.0058s  High Level: 0.0033s
Total: 0.4503s  High Level: 0.4143s
Total: 0.4506s  High Level: 0.4141s
Total: 0.4486s  High Level: 0.4118s
Total: 0.4400s  High Level: 0.4039s
Total: 0.4523s  High Level: 0.4189s
Total: 0.0064s  High Level: 0.0033s
Total: 0.4441s  High Level: 0.0001s
Total: 0.0002s  High Level: 0.0002s
Total: 0.4523s  High Level: 0.4150s
Total: 0.4499s  High Level: 0.4133s
Total: 0.4434s  High Level: 0.4111s
Total: 0.0002s  High Level: 0.0002s
Total: 0.4531s  High Level: 0.4165s
Total: 0.4503s  High Level: 0.4121s
Total: 0.4425s  High Level: 0.0000s
Total: 0.0032s  High Level: 0.0008s
Total: 0.4437s  High Level: 0.0001s
Total: 0.0030s  High Level: 0.0009s
Total: 0.4507s  High Level: 0.4140s
Total: 0.4434s  High Level: 0.0001s
Total: 0.0001s  High Level: 0.0000s
Total: 0.4417s  High Level: 0.4058s
Total: 0.4501s  High Level: 0.4129s
Total: 0.4495s  High Level: 0.4138s
Total: 0.4498s  High Level: 0.4130s
Total: 0.4501s  High Level: 0.4136s
Total: 0.4396s  High Level: 0.4034s
Total: 0.4496s  High Level: 0.4128s
Total: 0.4497s  High Level: 0.4136s
Total: 0.4420s  High Level: 0.4084s
Total: 0.0061s  High Level: 0.0034s
Total: 0.4348s  High Level: 0.0001s
Total: 0.0030s  High Level: 0.0006s
 
一派掌門 二十級
17樓 發表于:2017-4-2 15:48
【將右LED燈短路後測得的數據】
Total: 0.0087s  High Level: 0.0000s
Total: 0.0001s  High Level: 0.0000s
Total: 0.0008s  High Level: 0.0008s
Total: 0.0001s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0681s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0681s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.6003s  High Level: 0.2991s
Total: 0.0000s  High Level: 0.0000s
Total: 0.1081s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0026s  High Level: 0.0026s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0031s  High Level: 0.0031s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0058s  High Level: 0.0058s
 
一派掌門 二十級
18樓 發表于:2017-4-2 15:49
【將兩個LED燈都短路後測得的數據】
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0024s
Total: 0.0002s  High Level: 0.0004s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0001s  High Level: 0.0003s
Total: 0.0065s  High Level: 0.0065s
Total: 0.0000s  High Level: 0.0011s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0001s  High Level: 0.0001s
Total: 0.0025s  High Level: 0.0025s
Total: 0.0037s  High Level: 0.0037s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0000s  High Level: 0.0004s
Total: 0.0001s  High Level: 0.0000s
Total: 0.0067s  High Level: 0.0067s
Total: 0.0002s  High Level: 0.0004s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0007s
Total: 0.0066s  High Level: 0.0066s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0000s  High Level: 0.0002s
Total: 0.0001s  High Level: 0.0001s
Total: 0.0004s  High Level: 0.0004s
Total: 0.0000s  High Level: 0.0011s
Total: 0.0000s  High Level: 0.0001s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0068s  High Level: 0.0068s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0007s
Total: 0.0064s  High Level: 0.0064s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0001s  High Level: 0.0001s
Total: 0.0032s  High Level: 0.0032s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0004s
Total: 0.0067s  High Level: 0.0067s
Total: 0.0002s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0056s  High Level: 0.0056s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0056s  High Level: 0.0017s
Total: 0.0089s  High Level: 0.0089s
Total: 0.0000s  High Level: 0.0008s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0064s  High Level: 0.0064s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0001s  High Level: 0.0001s
Total: 0.0001s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0065s  High Level: 0.0065s
Total: 0.0001s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0001s  High Level: 0.0001s
Total: 0.0001s  High Level: 0.0003s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0066s  High Level: 0.0066s
Total: 0.0002s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0060s  High Level: 0.0060s
Total: 0.0002s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0066s  High Level: 0.0066s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0048s  High Level: 0.0016s
Total: 0.0017s  High Level: 0.0017s
Total: 0.0080s  High Level: 0.0080s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0069s  High Level: 0.0069s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0072s  High Level: 0.0072s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0002s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0055s  High Level: 0.0055s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0060s  High Level: 0.0060s
Total: 0.0001s  High Level: 0.0001s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0004s  High Level: 0.0004s
Total: 0.0082s  High Level: 0.0082s
Total: 0.0001s  High Level: 0.0003s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0004s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0077s  High Level: 0.0077s
Total: 0.0002s  High Level: 0.0002s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0000s  High Level: 0.0000s
Total: 0.0067s  High Level: 0.0067s
Total: 0.0000s  High Level: 0.0000s
 
一派掌門 二十級
19樓 發表于:2017-4-2 16:47
把多諧振盪器輸出的信號接到74LS193計數器的時鐘信號引腳上可以看到,計數值跳變得很不規則。有時候是加1,有時卻加的是2,甚至3。因此,多諧振盪器不能用來作為數字電路的時鐘源。
 
一派掌門 二十級
20樓 發表于:2017-4-2 18:11
STM32單片機內部有斯密特觸發器來過濾外部的輸入,所以多諧振盪器的噪聲體現不明顯。然而在普通的數字74系列晶片中可沒有這樣的過濾器,所以都無法正常工作。
 

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:1015 回複數:18
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2017-4-2 18:11
 
©2010-2025 Purasbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。