• slider image 514
  • slider image 520
  • slider image 521
  • slider image 522
  • slider image 523
  • slider image 524
:::

論壇索引


Board index » All Posts




Re: 程式是這樣要把ADC的轉換值用USART輸出可是最大值是1024正確最小值卻不是0該怎麼修改
#31
新會員
新會員


使用的是PIC16F1825

發表於: 7/11 16:26
頂部


Re: 程式是這樣要把ADC的轉換值用USART輸出可是最大值是1024正確最小值卻不是0該怎麼修改
#32
管理員
管理員


Hi,

首先方便詢問您提供MCU的名稱嗎?
您貼上來的程式碼包含了ADC的初始化函數,並在main function中循環讀取ADC的數值。需再對照Datasheet上來查看初始化的設定。

建議您可以先檢查以下幾點:
1. ADC的輸入腳位是否有正確接地或是符合您的規劃
2. 參考電壓是否設定正確
3. 腳位是否有雜訊或是其他干擾

發表於: 7/11 10:26
頂部


Re: PIC16F15313 zcd issue
#33
管理員
管理員


Hi,

根據您所提供的波形圖,ZCD輸出波形的高低電位寬度不對稱,而Delay約為900微秒。
除了嘗試增加上拉或下拉電阻之外,建議您也可以嘗試調整RC時間常數來降低串聯電阻和電容的數值,以此減少RC時間常數來降低延遲。
使用AC Coupling ZCD的方式電阻和電容的串聯會形成一個高通濾波器。這個濾波器的截止頻率可能會因此影響訊號的相位導致ZCD出現延遲。

發表於: 7/11 9:49
頂部


程式是這樣要把ADC的轉換值用USART輸出可是最大值是1024正確最小值卻不是0該怎麼修改
#34
新會員
新會員


#include "mcc_generated_files/system/system.h"
#include
#include

#define _XTAL_FREQ 8000000
#define BAUDRATE 9600
#define MY_UBRR ((_XTAL_FREQ / 16 / BAUDRATE) - 1)

// Function to initialize UART
void UART_Init() {
SPBRG = MY_UBRR;
TXSTAbits.TX9 = 0; // 8-bit transmission
TXSTAbits.TXEN = 1; // Enable transmitter
TXSTAbits.SYNC = 0; // Asynchronous mode
TXSTAbits.BRGH = 1; // High-speed mode
RCSTAbits.SPEN = 1; // Enable serial port
RCSTAbits.CREN = 1; // Enable continuous reception

}

// Function to transmit a single character via UART
void uart_transmit(char data) {
while (!TXSTAbits.TRMT); // Wait for buffer to be empty
TXREG = data; // Transmit data
}

// Function to transmit a string via UART
void uart_transmit_string(const char* str) {
while (*str != '\0') {
uart_transmit(*str++);
}
}

// Function to initialize ADC
void initADC(void) {
ADCON0 = 0b00001001; // Select AN2 (CHS = 00010), enable ADC (ADON = 1)
ADCON1 = 0b10010000; // Right justify result, Fosc/8 as ADC clock
ADCON0bits.GO_nDONE = 1; // Start A/D conversion
}

// Function to read ADC value
unsigned int readADC(void) {
ADCON0bits.GO_nDONE = 1; // Start conversion
while (ADCON0bits.GO_nDONE); // Wait for conversion to complete
return ((ADRESH << 8) | ADRESL); // Return 10-bit result
}

// Function to convert integer to string
void itoa(unsigned int value, char* buffer) {
sprintf(buffer, "%u", value);
}

// Main function
int main(void) {
SYSTEM_Initialize();
UART_Init();
initADC();

char adcBuffer[6]; // Buffer to hold ADC value as string

while (1) {


// Read ADC value
unsigned int adcValue = readADC();

// Convert ADC value to string
itoa(adcValue, adcBuffer);

// Transmit ADC value
uart_transmit_string(adcBuffer);
uart_transmit('\n'); // Newline for readability
uart_transmit('\r');
__delay_ms(1000); // Delay before next reading
}
}

發表於: 7/9 10:13
頂部


Re: PIC16F15313 zcd issue
#35
資深會員
資深會員


附上waveform

Attach file:



jpg  LeCroy20.jpg (70.17 KB)
9227_6685f90adb55c.jpg 1024X547 px

發表於: 7/4 9:21
頂部


Re: PIC16F15313 zcd issue
#36
資深會員
資深會員


我將電路改為ac coupling zcd的方式, 計算出串聯電阻1Meg,串聯電容0.1uF,
這樣的方式可以動作,但是ZCD Cross的點是錯誤的,Delay約是900us,
如果按照正確的波形來看,ZCD的OUTPUT輸出High與low應該各是一樣的波形寬度,但是我的波形是high與low差異很大,想請問用pullup電阻或pulldown電阻能夠改善嗎?

Attach file:



jpg  ac coupling zcd.jpg (74.12 KB)
9227_6684cbd282bc8.jpg 1266X665 px

發表於: 7/3 11:56
頂部


PIC16F15313 zcd issue
#37
資深會員
資深會員


目前使用PIC16F15313,前一版使用組容式降壓式可以偵測zcd的,但由於硬體修改,改為橋式整流後經過電阻與積納二極體降壓到5v,但未注意到橋式整流後MCU的VSS是接到橋式整流的-,導致目前ZCD由ACL-->電阻-->ZCD無法再0.75V做CROSS,不知道是否有方法可以將ZCD應用在這樣的情況呢?

Attach file:



jpg  zcd.jpg (100.81 KB)
9227_6683c4889e29b.jpg 1478X784 px

發表於: 7/2 17:12
頂部


Re: PICkit4與PICkit5的差異?ProgrammerToGo 燒錄檔可互用嗎?
#38
資深會員
資深會員


感謝!您的說明很有幫助。

在使用PICkit4做ProgrammerToGo時就覺得如果可以一直儲存多組燒錄檔該有多好,沒想到
PICkit5就做到了。

這對要外出更新的人來說很有用!!

發表於: 7/2 10:49
我相信解決問題的方法不只一種,所以我在回答同好的問題時或者提出與主題不同的方案,
請不要以此做為攻擊的目標,畢竟我也只是想和大家討論如何解決問題而已…
解決問題最重要,.....
頂部


Re: PICkit4與PICkit5的差異?ProgrammerToGo 燒錄檔可互用嗎?
#39
管理員
管理員


Hi 您好,

首先,PICkit5 的 Programmer-to-Go (PTG) 燒錄檔可以給PICkit4用。
以下為Pickit5 與 Pickit4 主要的差異:
- 可在 SD卡上儲存多個檔案並選擇進行燒錄
- 可以透過藍芽連到手機APP來選擇要燒錄的PTG檔
- 使用Type-C 連接

發表於: 7/2 10:41
頂部


PICkit4與PICkit5的差異?ProgrammerToGo 燒錄檔可互用嗎?
#40
資深會員
資深會員


請問 PICkit4與PICkit5 會差很多嗎?因為從外觀上看差不多。

客戶是用PICkit4,因為我們有做 ProgrammerToGo 燒錄檔的需求(做好直接給客戶自己用PICkit4燒錄),現在我們公司要買一個PICkit5,

但是不知道用PICkit5做的 ProgrammerToGo 燒錄檔可以給PICkit4用嗎?

以上,感謝。

發表於: 7/2 9:13
我相信解決問題的方法不只一種,所以我在回答同好的問題時或者提出與主題不同的方案,
請不要以此做為攻擊的目標,畢竟我也只是想和大家討論如何解決問題而已…
解決問題最重要,.....
頂部



« 1 2 3 (4) 5 6 7 ... 7529 »



:::

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

教育訓練中心

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