📄 adc.c
字号:
#include<p18f458.h>// Zegar TMR1 liczy do wartosci zadanej przez przetwornik A/C*
void Init_PORTD();
void Init_TMR1();
void Init_AC();
void main()
{
unsigned int liczba_AC, Temp;
Init_PORTD();
Init_TMR1();
Init_AC();
while (1)
{
ADCON0bits.GO=1;//start konwersji AC
while (ADCON0bits.GO)//oczekiwanie na koniec konwersji
;
liczba_AC= ADRESH;
liczba_AC=liczba_AC<<8;//przesuni阠ie zestarszych bit體
liczba_AC=liczba_AC+ADRESL;//przes砤nie wyniku konwersji
liczba_AC=0xF00F-liczba_AC;// dope硁ienie do 2^16
Temp=liczba_AC;
TMR1H=liczba_AC>>8;//przesuni阠ie starszego bajtu na w砤渃iwe miejsce
TMR1L=Temp;//wpisanie m硂dszego bajtu na w砤渃iwe miejsce
PIR1bits.TMR1IF=0;
T1CONbits.TMR1ON=1;//start zegara
while (!PIR1bits.TMR1IF)
;
T1CONbits.TMR1ON=0;//stop zegara
PORTD=!(PORTD);//Negacja wyj滄 portu D
}
}
void Init_TMR1()
{
TMR1H=0;
TMR1L=0;
T1CON=0b10001011;
}
void Init_AC()
{
ADCON0=0b10000001;
ADCON1=0b10000000;//wyr體nanie do prawej
ADCON0bits.GO=1;//start konwersji AC
while(ADCON0bits.GO)
;
}
void Init_PORTD()
{
PORTD=0;
TRISD=0;//PORTD pracuje jako wyj渃ie
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -