erdemmizrak
Üye
- Katılım
- 25 Ocak 2012
- Mesajlar
- 45
- Puanları
- 1
bahsettigin dac kısmı içinmi
#include <p18F452.h>
#include <stdlib.h>
#include <usart.h>
#include <adc.h>
#pragma config OSC=XT,PWRT=ON,WDT=OFF,DEBUG=OFF
//#pragma config CP0=OFF,CP1=OFF,CP2=OFF,CP3=OFF,CPB=OFF,CPD=OFF
//#pragma config WRT0=OFF,WRT1=OFF,WRT2=OFF,WRT3=OFF,WRTB=OFF,WRTC=OFF,WRTD=OFF
//#pragma config EBTR0=OFF,EBTR1=OFF,EBTR2=OFF,EBTR3=OFF,EBTRB=OFF
// 4Mhz için bir gecikme fonksiyonu
// mS saniye olarak 0-16.777.215 arası değer girilebilir.
void delay_ms(unsigned short long x)
{
unsigned short long y, z;
for ( ; x > 0 ; x--)
for ( y = 0 ; y < 4 ; y++)
for ( z = 0 ; z < 176 ; z++);
}
void main(void)
{
unsigned int ADCValue; // ADC'den okunacak olan değer
char *Sonuc; // RS232'ye gönderilecek ADC değeri
char *temp;
char inputstr[1];
TRISB=0x00;
while( 1 )
{
// Configure USART
OpenUSART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX, 25);
// Configure ADC
OpenADC(ADC_FOSC_32 & ADC_RIGHT_JUST & ADC_8ANA_0REF, ADC_CH0 & ADC_INT_OFF );
while(BusyUSART());
getsUSART(inputstr, 1);
// Eğer UART'tan 'r' harfi gelmişse; ADC okuma işlemi yapılıyor...
if(inputstr[0] == 114)
{
ConvertADC(); // Start conversion
while(BusyADC()); // Wait for completion
ADCValue = ReadADC();
ultoa(ADCValue, Sonuc);
putsUSART(Sonuc);
}
// Eğer UART'tan 'w' harfi gelmişse; DAC'a yazma işlemi yapılıyor...
if(inputstr[0] == 119)
{
putrsUSART("Yazma Seçildi");
PORTB = 0x55;
}
delay_ms(50);
// Modülleri temizle
CloseUSART();
CloseADC();
}
}