請問PIC16F873A之RC振盪問題
|
||||
---|---|---|---|---|
新會員
|
各位先進好
小弟使用PIC16F873A系列發展專案 遇到了clock相關問題 在此請教各位先進 1.當我使用外加crystal時 我所使用之crystal是否要如spec所規定之型號 電容大小是否要與spec所規定之值相同? 2.對於Rs,我應如何處理? (外加crystal) 任意接一電阻是允許的嗎? 3.關於使用RC內部振盪電路 我外加RC元件 但所算之RC值,均未落於recommended values 若依RC之recommended values來算 無法得到4MHz之解 我的計算公式是 f=1/(2*pi*R*C) 請問是否正確? 還是我小數點計算有誤? 謝謝各位先進之指導
發表於: 2008/8/22 17:10
|
|||
|
請問UART傳送資料問題(使用PIC16F873A,Hi-Tech c)
|
||||
---|---|---|---|---|
新會員
|
各位先進好
小弟初次使用PIC16F873A,Hi-Tech c進行專案製作 程式如下:
#include <pic.h>
經程式驗證 與預期相同 但利用示波器讀取TX信號時 卻未讀出任何信號 (利用power supply外加電源、RB7接地) 想請教各位先進 可能出錯的地方在哪兒? 程式還缺少什麼部份? configuration bit 之設定有什麼要注意的地方? 謝謝各位先進的幫忙 再次感謝
發表於: 2008/8/19 16:28
Edited by Ryang on 2008年08月20日 09:11:44
|
|||
|
請問關於PICC(Hi-tech C)之程式燒錄問題
|
||||
---|---|---|---|---|
新會員
|
各位先進好
小弟剛完成PIC16F873A之程式設計(使用Hi-tech c) 利用Leap PSTART燒錄器 出現以下訊息: PICSTART Plus Firmware Version 04.50.09 PICSTART Program\Verify Report 01-Aug-2008, 16:51:19 Device Type: PIC16F873A Address Range 0-9f Program Memory Errors Address Good Bad 0000: 118A 0000 0001: 2802 0000 0002: 01A6 0000 0003: 01A7 0000 0004: 1683 0000 0005: 1406 0000 0006: 1486 0000 0007: 1506 0000 0008: 1586 0000 0009: 1606 0000 000A: 1686 0000 000B: 1706 0000 000C: 1786 0000 000D: 1307 0000 000E: 1787 0000 000F: 1283 0000 0010: 1798 0000 0011: 1683 0000 0012: 1698 0000 0013: 1283 0000 0014: 1618 0000 0015: 1683 0000 0016: 1518 0000 0017: 1218 0000 0018: 1318 0000 0019: 30B0 0000 001A: 1283 0000 001B: 00A0 0000 001C: 01A1 0000 001D: 1683 0000 001E: 0099 0000 001F: 1283 0000 Any additional errors are not displayed. 這程式之燒錄是失敗的 請問各位先進 這原因是什麼? (我確定chip腳位都完全正確) 在進行程式燒錄時,我該注意哪些問題? 有哪些參數是我必須要設定的? 在此謝謝各位先進的幫助
發表於: 2008/8/1 16:58
|
|||
|
Re: 請教各位先進關於UART傳送資料之問題(利用Hi-Tech C)
|
||||
---|---|---|---|---|
新會員
|
謝謝j大的回應
根據您的說法 我有疑問如下 我參考PIC16F873a之spec. 其中有一段話是這樣的 Bit SPEN (RCSTA<7>) and bits TRISC<7:6> have to be set in order to configure pins RC6/TX/CK and RC7/RX/DT as the Universal Synchronous Asynchronous Receiver Transmitter 看起來應是將TRISC7,TRISC6設為1 請問SPEC當中所謂的set 是將暫存器設為1? 或是設為0? 因為我是新手 懇請j大或其他先進幫助我 謝謝
發表於: 2008/7/31 17:34
|
|||
|
請教各位先進關於UART傳送資料之問題(利用Hi-Tech C)
|
||||
---|---|---|---|---|
新會員
|
各位先進好
小弟為初學者,採用PIC16F873a進行專案製作 程式主體如下: #define BAUD 9600 (設定Baud Rate) #define FOSC 4000000 unsigned char btBuf[9]; unsigned int i=0; unsigned int nXOR=0; int nSN; int DIVIDER; // port B:input from MCU (將port B之所有接點設定為輸入端) TRISB0=1; TRISB1=1; TRISB2=1; TRISB3=1; TRISB4=1; TRISB5=1; TRISB6=1; TRISB7=1; //set up UART(暫存器設定) TRISC6=1; //set RC6 TRISC7=1; //set RC7 SPEN=1; TXEN=1; //transmitted enable CREN=1; //received enable BRGH=1; SYNC=0; DIVIDER=FOSC/(16*BAUD)-1; SPBRG=DIVIDER; // active input if(RB0==0) { nSN++; btBuf[0]=0x80+(0x0F&nSN); btBuf[1]=0x7F; btBuf[2]=0x00; btBuf[3]=0x32; btBuf[4]=0x04; btBuf[5]=0xAD; btBuf[6]=0x00; btBuf[7]=0x00; btBuf[8]=0x01; for(i=0,nXOR=0;i<9;i++) { nXOR^=btBuf[i]; } btBuf[9]=nXOR; for(i=0;i<=9;i++) { TXIF=1; TXREG=btBuf[i]; //transmitted data (將資料透過UART之相關暫存器TXREG傳出) TXIF=0; } } 我利用MPLAB SIM進行模擬 可見TXREG收到btBuf[i] 但利用示波器及其他輔助工具 發現UART(TX)並無任何信號傳出 我已確認接線無誤 請各位先進指導 到底原因為何? 我的程式錯在哪裏 應該如何修正? 謝謝各位先進的幫忙
發表於: 2008/7/31 15:13
|
|||
|
急,請教各位先進關於UART傳送的問題
|
||||
---|---|---|---|---|
新會員
|
各位先進好
小弟初學PIC16F87x系列之UART應用(利用Hi-Tech C) 以下為部份測試程式
#define BAUD 9600
以下為我所遇到的問題 (我使用Animate進行程式追蹤) 1.我的程式設定RB1=1; 但在執行程式時 卻進入RB0之if結構中 請問原因為何? 2.當我進行debug時 出現以下訊息 "UART-W0001: Overrun, write occured over a full TXREG SFR. Data lost" (經驗證,UART並未傳出一串資料) 試了好幾種方法,都不成功\r 請問我該如何修改程式? 謝謝各位先進的幫忙
發表於: 2008/7/24 16:48
Edited by Ryang on 2008年07月25日 08:06:03
|
|||
|
請問PIC16F87x系列如何用C語言實現功能
|
||||
---|---|---|---|---|
新會員
|
各位先進好
小弟初次發文 希望大家能惠予指導 我第一次用PIC16F873a設計專案(使用C語言) 使用單純的I/O及UART功能 之前因不瞭解其特性 用了c18之語法 (參考書籍:微處理器原理與應用-曾百由著) 結果在complier時 才發現兩者之語法是不一樣的 因為這案子很急 請各位先進能否告訴我 我應該看哪些資料 才能利用C語言(用PIC16F873a) 正確設定I/O及利用UART傳送資料 再次謝謝大家
發表於: 2008/7/10 14:45
|
|||
|