2016年9月28日 星期三

DIY - Robot 機器人 - TowerPro MG995 舵機 PWM 測試程式二(六)

DIY - Robot 機器人 - TowerPro MG995 舵機 PWM 測試程式二 (六): 

另外產生脈衝寬度調變(PWM)信號方式是利用 Microchip PIC24FJ64GA008 內的 Delay Timer 函數,在 20ms 內控制輸出昇降,同樣可以產生脈衝寬度調變(PWM)信號輸出,利用不同的 PWM 信號來驅動 TowerPro MG995 舵機(Servo)的轉動角度。

TowerPro MG995 舵機 PWM 測試程式二 LCD 顯示
Microchip PIC24FJ64GA008 初始化程式:
    TRISDbits.TRISD0 = 0; // RD0 Output

Microchip PIC24FJ64GA008 主程式:
while(1){
        for ( loop = 0; loop < loop1; loop++ ) {
        LATDbits.LATD0 = 1;   // RD0 ON
        delayUs(3200);         // Center
                             // 2400<45 ms="" span="">
                             // 3040=90=1.55ms
                             // 3200=90=1.6ms
                             // 3600>90+45=2ms
                             // 4800<180 ms="" span="">
        LATDbits.LATD0 = 0;   // RD0 OFF
        delayms(20);
        }

        for ( loop = 0; loop < loop1; loop++ ) {
        LATDbits.LATD0 = 1;   // RD0 ON
        delayUs(7200);         // AntiClockwise
                            // 6400<90 ms="" span="">
        LATDbits.LATD0 = 0;  // RD0 OFF
        delayms(20);
        }

        for ( loop = 0; loop < loop1; loop++ ) {
        LATDbits.LATD0 = 1;   // RD0 ON
        delayUs(1400);         // Clockwise
                            // 1400<90 ms="" span="">
        LATDbits.LATD0 = 0;  // RD0 OFF
        delayms(20);
        }

        for ( loop = 0; loop < loop1; loop++ ) {
        LATDbits.LATD0 = 1;   // RD0 ON
        delayUs(160);          // Clockwise
        LATDbits.LATD0 = 0;   // RD0 OFF
        delayms(20);
        }
}


舵機的使用電壓是由 3.0 ~ 7.2V,本來的 MCU 的供電壓是由 3.3V,最方便直接使用 3.3V舵機的驅動,但試驗這款舵機的供電電 3.3V是可以,但極不穩定,有時動有時不動,發現這款舵機的供電壓最小 3.6V才可以,高電壓會提昇轉矩強度,由於供電電壓與 MCU 不同,並希望將舵機的供電分開,所以最後加上光耦 IC Renesas PS2561D)作分隔,避免因供電電不穩定,導致舵機作出錯誤動作。

TowerPro MG995 舵機 PWM 測試程式二電路(Schematic
TowerPro MG995 舵機 PWM 測試程式二
2016年 9月 28日 天氣報告
氣溫:29.6@ 22:50
相對濕度:百分之 61%
天氣:多雲

2016年9月27日 星期二

DIY - Robot 機器人 - TowerPro MG995 舵機 PWM 測試程式一(五)

DIY - Robot 機器人 - TowerPro MG995 舵機 PWM 測試程式一(五):

產生脈衝寬度調變(PWM)信號是很多方式,其中利用 Microchip PIC24FJ64GA008 內的 Timer ,再加上調整 OC 輸出,便可以輸出不同的 PWM 信號,便可以利用不同的 PWM 信號來驅動 TowerPro MG995 舵機(Servo)的轉動角度。

TowerPro MG995 舵機 PWM 測試程式一 LCD 顯示
▼例:假設振盪頻率 8MHz ( Fosc = 8MHz) TM2 預分頻值 164
PWM週期 = [ PR2+1] × (1(/Fosc/2)) × TM2 預分頻值  
PR2 = (99+1) × (1/(8MHz/2)) × 64 
PR2 = (1250) × (0.25us) × 64  
PR2 = (1250) × 16us
PR2 = 20ms (50Hz)

Calculation Example
Clock frequency = 8MHz
PWM frequency = 50Hz(8MHz/2)/50Hz = 8000/64
PR2 = (8000/64)-1 = 1249

1˙Duty Cycle = 0.5ms/20ms = 2.5%
OC1RS = 0.5ms / 16us = 31.25 (Clockwise = 30)

2˙Duty Cycle = 1.5ms/20ms = 7.5%
OC1RS = 1.5ms / 16us = 93.75 (Centre = 95)

3˙Duty Cycle = 2.5ms/20ms = 12.5%
OC1RS = 2.5ms / 16us = 156.25 (AntiClockwise = 160)

Microchip PIC24FJ64GA008 Timer2 初始化程式:
        CloseTimer2();              // Timer2 Close
                     ConfigIntTimer2(T2_INT_ON); // Timer2 Interrupt ON
        SetPriorityIntT2(1);        // Set Interrupt Priority 0~7
        OpenTimer2
        (
           T2_ON &                       // Timer2 ON
           T2_IDLE_CON &            // Idle Time Continue Run
           T2_GATE_OFF &            // Timer2 Gate Time Accumulation OFF/ON
           T2_32BIT_MODE_OFF &      // Timer2 32-bit Mode OFF/ON
           T2_PS_1_64 &              // Prescaler 1:1/8/64/2566
           T2_SOURCE_INT,           // Timer2 Source Oscillator INT/EXT
           1249                      // PRx=0~65535 1249+1=20ms
        );

Microchip PIC24FJ64GA008 OC1 初始化程式:
// Configure PWM OC1
// (PRx+1) * (1/(8MHz/2)) * Timer Divider
// ( 1249+1) * (0.25us * 2) * 64 = 20ms
// Reset PWM
OC1CON = 0x0000;    // Turn Off Output Compare 1 Module
// Set PWM Duty Cycle
OC1RS  =   1249;      // Initialize Second Compare Register (Duty Cycle =Timer/RS)
OC1R   =   1249;      // Initialize Compare Register        (RS/R)
// Enable PWM
OC1CON = 0x0005;    // Load the New Comapre mode to OC1CON
                    // Mode5 DC=50% OC1R=High=Timer OC1RS=Low=Timer/2

Microchip PIC24FJ64GA008 Timer2 中斷程式
// Timer2 Interrup
void __attribute__((interrupt, no_auto_psv)) _T2Interrupt(void) {
IFS0bits.T2IF = 0;
}

Microchip PIC24FJ64GA008 OC1 主程式
while(1){
//OC1RS = 1249*0.08;
OC1RS = 95;     // 96=Ctr 94~95=Ctr+1 98=Ctr-1
delayms(800);

OC1RS = 30;     // 0.5ms Clockwise 100=45 32-36<90 26="" 28="">90 20=135
delayms(500);

OC1RS = 160;    // 2.5ms Anticlockwise 45
delayms(500);

OC1RS = 95;     // 96=Ctr 94~95=Ctr+1 98=Ctr-1
delayms(500);
}


TowerPro MG995 舵機 PWM 測試程式一

2016年 9月 27日 天氣報告
氣溫:31.0@ 21:40
相對濕度:百分之 53%
天氣:天色大致良好

2016年9月26日 星期一

DIY - Robot 機器人 - TowerPro MG995 舵機(Servo) 測試介紹 (四)

DIY - Robot 機器人 - TowerPro MG995 舵機(Servo) 測試介紹 (四): 

測試 TowerPro MG995 舵機(Servo)是要使用脈衝寬度調變(Pulse Width ModulationPWM)程式來控制,舵機的控制信號週期是 20ms50Hz)的脈衝寬度調變PWM)信號,其中脈衝寬度從 0.5ms~2.5ms,是相對應舵盤的位置為 0~180度,祇要提供一個寬度的脈衝信號,舵機便會改變輸出角度到對應的位置上。

舵機(Servo)的脈衝寬度與輸出角度的關係
舵機工作原理是控制信號由接收機的通道進入信號調製晶片,獲得直流偏置電壓,它內部有一個基準電路,產生週期為 20ms,寬度為 1.5ms 的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最後,電壓差的正負輸出到電機驅動晶片決定電機的正反轉。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為 0,電機停止轉動。

舵機(Servo)的內部參考電路(Schematic
舵機(Servo)的 3腳插頭定義
注意:由於舵機牌子不同,其控制器解析出的脈衝寬度也不同,所以對於同一信號,不同牌子的舵機旋轉的角 度也不同,所以一定測試,再會了解脈衝寬度與輸出角度的當關係

注意:控制舵機的時候,要特別注意供電部分,因為舵機轉動時電流會比較大,MCU 晶片的電源可能會因過流保護到發熱而損壞,所有電源需要足夠或者接到外部供電。 

2016年 9月 26日 天氣報告
氣溫:26.5@ 19:20
相對濕度:百分之 81%
天氣:微雨

2016年9月15日 星期四

DIY - PIC24:PIC24FJ64GA008 ADC 控制 PWM 佔空比程式(五十三)

DIY - PIC24PIC24FJ64GA008 ADC 控制 PWM 佔空比程式(五十三): 

筆者將 Microchip PIC24FJ64GA008 A/D 類比數位轉換器程式和脈衝寬度調變(PWM) 程式合併,調節 ADC 類比數位轉換器的 AN0 可變電阻器來控制 PWM 佔空比(Duty Cycle),祇要讀取 AN0 的數值,然後將 OC1RS 的數值改變,便可控制 PWM 佔空比。

Microchip PIC24FJ64GA008 ADC + PWM 控制佔空比程式顯示
Microchip PIC24FJ64GA008 ADC + PWM 控制佔空比程式顯示
Microchip PIC24FJ64GA008 ADC + PWM 初始化程式:
// Initialise Timer2
        CloseTimer2();              // Timer2 Close
        ConfigIntTimer2(T2_INT_ON); // Timer2 Interrupt ON
        SetPriorityIntT2(1);        // Set Interrupt Priority 0~7
        OpenTimer2
        (
           T2_ON &                          // Timer2 ON
           T2_IDLE_CON &            // Idle Time Continue Run
           T2_GATE_OFF &            // Timer2 Gate Time Accumulation OFF/ON
           T2_32BIT_MODE_OFF &      // Timer2 32-bit Mode OFF/ON
           T2_PS_1_1 &              // Prescaler 1:1/8/64/256
           T2_SOURCE_INT,           // Timer2 Source Oscillator INT/EXT
            99                               // PRx=0~65535 99=25us
        );

// ADC Setup
AD1PCFG = 0xFFFC;  // Configure AN0 and AN1 Analog

AD1CON1 = 0x2202;  // Configure sample clock source
// and conversion trigger mode.
// Unsigned Fraction format (FORM<1:0>=10),
// Manual conversion trigger (SSRC<3:0>=000),
// Manual start of sampling (ASAM=0),
// No operation in Idle mode (ADSIDL=1).
AD1CON2 = 0x0000;  // Configure A/D voltage reference and buffer fill modes.
// Vr+ and Vr- from AVdd and AVss (VCFG<2:0>=000),
// Inputs are not scanned, Interrupt after every sample
AD1CON3 = 0x0100;

AD1CHS = 0x0000;   // Select analog input channel AN0
AD1CSSL = 0;       // No scanning required

IFS0bits.AD1IF = 0;     // Clear A/D conversion interrupt
AD1CON1bits.ADON = 1; // Turn On ADC

Microchip PIC24FJ64GA008 ADC + PWM 中繼程式:
// Timer2 Interrup
void __attribute__((interrupt, no_auto_psv)) _T2Interrupt(void) {

IFS0bits.T2IF = 0;

AD1CON1bits.SAMP =1;  // Start Sampling
while(!AD1CON1bits.SAMP);

AD1CON1bits.SAMP =0;
while(AD1CON1bits.SAMP);

while(!AD1CON1bits.DONE){
an0 = ADC1BUF0;
OC1RS  = an0/655;
}
}


Microchip PIC24FJ64GA008 ADC + PWM 主程式
while(1){
}

Microchip PIC24FJ64GA008 ADC + PWM 控制佔空比程式

2016年 9月 15日 天氣報告
氣溫:29.1@ 23:00
相對濕度:百分之 73%
天氣:天色大致良好
※ 中秋節快樂 

2016年9月14日 星期三

DIY - PIC24:PIC24FJ64GA008 A/D 類比數位轉換器程式(五十二)

DIY - PIC24PIC24FJ64GA008 A/D 類比數位轉換器程式(五十二): 

Microchip PIC24FJ64GA008 A/D 類比數位轉換器程式,首先要設定寄存器,然後執行 ADC 轉換,完成後讀取數值,將數值換算出真正的數值,數值資料輸出到 LCD 1602 作出顯示。

Microchip PIC24FJ64GA008 A/D 類比數位轉換器顯示
Microchip PIC24FJ64GA008 A/D 類比數位轉換器模組具有 6 個控制和狀態寄存器
AD1CON1A/D 控制寄存器 1 
AD1CON2A/D 控制寄存器 2
  AD1CON3A/D 控制寄存器 3 
AD1CHSA/D 輸入通道選擇寄存器 
AD1PCFGA/D 埠配置寄存器
  AD1CSSLA/D 輸入掃描選擇寄存器

Microchip PIC24FJ64GA008 A/D 類比數位轉換器 A/D 採樣/轉換序列
Microchip PIC24FJ64GA008 A/D 模組配置
在執行 A/D 轉換時應該遵循以下步驟: 
1. 配置 A/D 模組:
• 選擇參考電壓源來匹配類比引腳上的期望電壓範圍
• 選擇類比轉換時鐘以使所需資料速率與處理器時鐘匹配
• 確定採樣將如何發生
• 確定輸入如何分配到 S/H 通道
• 選擇所需的採樣/ 轉換序列
• 選擇如何將轉換結果送到緩衝器
• 選擇中斷速率
• 打開 A/D 模組 
2. 配置 A/D 中斷(如需要):
• 清零 AD1IF
• 選擇 A/D 中斷優先順序 

Microchip PIC24FJ64GA008 A/D 類比數位轉換器,轉換 1 個通道,自動採樣啟動,手動轉換啟動
Microchip PIC24FJ64GA008 AN0 初始化程式:
// ADC Setup
AD1PCFG = 0xFFFC;  // Configure AN0 and AN1 Analog

AD1CON1 = 0x2202;  // Configure sample clock source
// and conversion trigger mode.
// Unsigned Fraction format (FORM<1:0>=10),
// Manual conversion trigger (SSRC<3:0>=000),
// Manual start of sampling (ASAM=0),
// No operation in Idle mode (ADSIDL=1).
AD1CON2 = 0x0000;  // Configure A/D voltage reference and buffer fill modes.
// Vr+ and Vr- from AVdd and AVss (VCFG<2:0>=000),
// Inputs are not scanned, Interrupt after every sample
AD1CON3 = 0x0100;

AD1CHS = 0x0000;   // Select analog input channel AN0
AD1CSSL = 0;       // No scanning required

IFS0bits.AD1IF = 0;     // Clear A/D conversion interrupt
AD1CON1bits.ADON = 1; // Turn On ADC

Microchip PIC24FJ64GA008 AN0 主程式
unsigned int an0;
unsigned char xlcd_buf[17];

while(1){
AD1CON1bits.SAMP =1;     // Start Sampling
while(!AD1CON1bits.SAMP);

AD1CON1bits.SAMP =0;
while(AD1CON1bits.SAMP);

while(!AD1CON1bits.DONE){  // Wait to complete the conversion
an0 = ADC1BUF0;           // Read the conversion result
SetDDRamAddr(0x40);
WriteStrXLCD("AN0=");
WriteNbXLCD(an0);
WriteStrXLCD(" ");
}

Microchip PIC24FJ64GA008 A/D 類比數位轉換器程式
2016年 9月 14日 天氣報告
氣溫:30.0@ 21:50
相對濕度:百分之 62%
天氣:大致多雲

2016年9月13日 星期二

DIY - PIC24:PIC24FJ64GA008 A/D 類比數位轉換器電路(五十一)

DIY - PIC24PIC24FJ64GA008 A/D 類比數位轉換器電路(五十一): 

Microchip PIC24FJ64GA008 A/D ADC類比數位轉換器電路是很簡單,電路祇是用了兩個可變電阻器 (10KΩ) ,連接到 AN0Pin 20)和 AN1Pin 19)上。祇要調節可變電阻器的電阻值,從而改變電壓輸入到類比數位轉換器,類比數位轉換器便將電壓轉化為數值,數值顯示在 LCD 1602 液晶屏上。

Microchip PIC24FJ64GA008 A/D 類比數位轉換器電路Schematic
完成 Microchip PIC24FJ64GA008 A/D 電路組裝正面
完成 Microchip PIC24FJ64GA008 A/D A/D 電路組裝背面
完成 Microchip PIC24FJ64GA008 A/D A/D 電路組裝
2016年 9月 13日 天氣報告
氣溫:26.7@ 20:30
相對濕度:百分之 80%
天氣:多雲

2016年9月12日 星期一

DIY - PIC24:PIC24FJ64GA008 A/D 類比數位轉換器基礎(五十)

DIY - PIC24PIC24FJ64GA008 A/D 類比數位轉換器基礎(五十): 

Microchip PIC24FJ64GA008 芯片上具有 16 路類比數位轉換器(Analog-to-Digital Converter ADC)輸入,在數碼系統中, A/D ADC模組常會用作訊號的檢測,在 PIC24FJ64GA008 A/D  模組能將一個類比輸入信號轉換成相應的 10 位元 (10-bit) 數位信號。雖然 10 位元數位信號的分辨率是一般,比起 12 14 位元數位信號有一段距離,但一般使用是可以接受。

Microchip PIC24FJ64GA008 芯片上16 A/D 類比數位轉換器
Microchip PIC24FJ64GA008 10 A/D 轉換器具有以下主要特性:
• 逐次逼近(SAR)轉換
• 轉換速度最大達到 500 ksps 
• 最多 16 個模擬輸入引腳• 外部參考電壓輸入引腳
• 自動通道掃描模式• 可選轉換觸發源
16 字轉換結果緩衝器• 可選緩衝器填充模式
• 四種結果對齊方式
• 可在 CPU 休眠和空閒模式下工作

根據特定器件的引腳配置, 10 位元 A/D 轉換器最多可以有 16 個模擬輸入引腳,即 AN0 AN15。此外,還有兩個可用於連接外部參考電壓的類比輸入引腳。這兩個參考電壓輸入可以和其他類比輸入引腳複用。實際的模擬輸入引腳數和外部參考電壓輸入配置取決於具體的器件。

PIC24FJ64GA008 AD1CON1A/D 控制寄存器 1
PIC24FJ64GA008 AD1CON1A/D 控制寄存器 1
bit
Description
bit 15
ADONA/D 工作模式位元
1 = A/D 轉換器模組正在工作
0 = A/D 轉換器已關閉
bit 14
未實現:讀為0
bit 13
ADSIDL:空閒模式停止位元
1 = 當器件進入空閒模式時,模組停止工作
0 = 在空閒模式下模組繼續工作
bit 12 ~ 10
未實現:讀為0
bit 9 ~ 8
FORM1:FORM0:資料輸出格式位元
11 = 有符號小數(sddd dddd dd00 0000
10 = 小數(sddd dddd dd00 0000
01 = 有符號整數(ssss sssd dddd dddd
00 = 整數(0000 00dd dddd dddd
bit 7 ~ 5
SSRC2:SSRC0:轉換觸發源選擇位
111 = 內部計數器結束採樣並啟動轉換(自動轉換)
110 = 保留
10x = 保留
011 = 保留
010 = Timer3 比較器結束採樣並啟動轉換
001 = INT0 引腳的有效電平轉換邊沿結束採樣並啟動轉換
000 = SAMP 位清零結束採樣並啟動轉換
bit 4 ~ 3
未實現:讀為0
bit 2
ASAM A/D 採樣自動啟動位
1 = 採樣在上一次轉換結束後立即開始。SAMP 位自動置1
0 = 採樣在 SAMP 位置 1 後開始
bit 1
SAMPA/D 採樣使能位
1 = A/D 採樣 / 保持放大器正在採樣輸入
0 = A/D 採樣 / 保持放大器正在保持
bit 0
DONEA/D 轉換狀態位元
1 = A/D 轉換完成
0 = A/D 轉換未完成

PIC24FJ64GA008 AD1CON2A/D 控制寄存器 2
PIC24FJ64GA008 AD1CON2A/D 控制寄存器 2
bit
Description
bit 15 ~ 13
VCFG2:VCFG0:參考電壓配置位元
000 = VR+ AVDDVR- AVSS
001 = VR+ 外部 VREF+ 引腳,VR- AVSS
010 = VR+ AVDDVR- 外部 VREF- 引腳
011 = VR+ 外部 VREF+ 引腳,VR- 外部 VREF- 引腳
1xx = VR+ AVDDVR- AVSS
bit 12
保留
bit 11
未實現:讀為0
bit 10
CSCNA:由 MUX A 輸入多路開關控制的 CH0+ S/H 輸入的掃描輸入選擇位元
1 = 掃描輸入
0 = 不掃描輸入
bit 9 ~ 8
未實現:讀為 0
bit 7
BUFS:緩衝器填充狀態位元(僅當BUFM = 1 時有效)
1 = A/D 當前正在填充緩衝器 08-0F,用戶應該訪問 00-07 中的資料
0 = A/D 當前正在填充緩衝器 00-07,用戶應該訪問 08-0F 中的資料
bit 6
未實現:讀為 0
bit 5 ~ 2
SMPI3:SMPI0:每次中斷的採樣/ 轉換過程數選擇位
1111 = 每完成 16 個採樣/ 轉換過程後產生中斷
1110 = 每完成 15 個採樣/ 轉換過程後產生中斷
.....
0001 = 每完成兩個採樣/ 轉換過程後產生中斷
0000 = 在完成每個採樣/ 轉換過程後產生中斷
bit 1
BUFM:緩衝器模式選擇位元
1 = 緩衝器被配置為兩個 8 字緩衝器(ADC1BUFx<15:8> ADC1BUFx<7:0>
0 = 緩衝器被配置為一個 16 字緩衝器(ADC1BUFx<15:0>
bit 0
ALTS:交替輸入採樣模式選擇位元
1 = 使用 MUX A輸入多路開關設置進行第一次採樣,然後交替使用 MUX BMUX A輸入多路開關設置進行
後續採樣
0 = 總是使用 MUX A 輸入多路開關設置

PIC24FJ64GA008 AD1CON3A/D 控制寄存器 3
PIC24FJ64GA008 AD1CON3A/D 控制寄存器 3
bit
Description
bit 15
ADRCA/D 轉換時鐘源位元
1 = A/D 內部 RC 時鐘
0 = 時鐘由系統時鐘產生
bit 14 ~ 13
未實現:讀為 0
bit 12 ~ 8
SAMC4:SAMC0:自動採樣時間位
11111 = 31 TAD
••••••
00001 = 1 TAD
00000 = 0 TAD (不建議)
bit 7 ~ 0
ADCS7:ADCS0A/D 轉換時鐘選擇位元
11111111 = 256 * TCY
••••••
00000001 = 2 * TCY
00000000 = TCY

PIC24FJ64GA008 AD1CHSA/D 輸入選擇寄存器
PIC24FJ64GA008 AD1CHSA/D 輸入選擇寄存器
bit
Description
bit 15
CH0NBMUX B 多路開關的通道 0 負輸入選擇位
1 = 通道 0 負輸入為 AN1
0 = 通道 0 負輸入為 VRbit
bit 14 ~ 12
未實現:讀為0
bit 11 ~ 8
CH0SB3:CH0SB0MUX B 多路開關的通道 0 正輸入選擇位
1111 = 通道 0 正輸入為 AN15
1110 = 通道 0 正輸入為 AN14
••••••
0001 = 通道 0 正輸入為 AN1
0000 = 通道 0 正輸入為 AN0
bit 7
CH0NAMUX A 多路開關的通道 0 負輸入選擇位
1 = 通道 0 負輸入為 AN1
0 = 通道 0 負輸入為 VRbit
bit 6 ~ 4
未實現:讀為 0
bit 3 ~ 0
CH0SA3:CH0SA0MUX A 多路開關的通道 0 正輸入選擇位
1111 = 通道 0 正輸入為 AN15
1110 = 通道 0 正輸入為 AN14
•••••
0001 = 通道 0 正輸入為 AN1
0000 = 通道 0 正輸入是 AN0

PIC24FJ64GA008 AD1PCFGA/D 埠配置寄存器
PIC24FJ64GA008 AD1PCFGA/D 埠配置寄存器:
bit
Description
bit 15 ~ 0
PCFG15:PCFG0:類比輸入引腳配置控制位元
1 = 對應類比通道的引腳被配置為數位模式;使能 I/O 埠讀取
0 = 引腳被配置為類比模式;禁止 I/O 埠讀取, A/D 對引腳電壓進行採樣

PIC24FJ64GA008 AD1CSSLA/D 輸入掃描選擇寄存器
PIC24FJ64GA008 AD1CSSLA/D 輸入掃描選擇寄存器:
bit
Description
bit 15 ~ 0
CSSL15:CSSL0 A/D 輸入引腳掃描選擇位元
1 = 選擇對應的類比通道進行輸入掃描
0 = 不對類比通道進行輸入掃描

Microchip PIC24FJ64GA008 ADC 寄存器映射
2016年 9月 12日 天氣報告
氣溫:28.8@ 20:40
相對濕度:百分之 86%
天氣:天色大致良好