sadoazb
Üye
- Katılım
- 26 Ara 2009
- Mesajlar
- 154
- Puanları
- 1
- Yaş
- 52
arkadaşlar aşagıdaki kod ile rs232-rs485 çevirici kart ile bilğisayara
veri gönderiyorum...
fakat bilğisayardan veri almak için rda kesmesini kullandığımda rda kesmesinde
hata veriyor...
nedenini bir türlü çözemedim...
main.c
main.h
veri gönderiyorum...
fakat bilğisayardan veri almak için rda kesmesini kullandığımda rda kesmesinde
hata veriyor...
nedenini bir türlü çözemedim...
main.c
Kod:
#include "E:\elektronik\ccs_pic\uygulamalar\seriiletisim\877_rs485_3\main.h"
//*****************************************************************************
//rs485 seri iletişim ayarlamaları
#include <RS485.c>
#define RS485_ID deviceId
#define RS485_RX_PIN PIN_C7
#define RS485_TX_PIN PIN_C6
#define RS485_USE_EXT_INT FALSE // Change to FALSE
//defined but not using
#define RS485_ENABLE_PIN PIN_E0
#define RS485_RX_ENABLE PIN_E1
#define RS485_RX_BUFFER_SIZE 64
int8 msg[RS485_RX_BUFFER_SIZE];
//int8 RS485_IDd = 5;
//#define RS485_IDd RS485_ID
//******************************************************************************
#include <stdlib.h>
#int_rda // RX ucuna veri gelince meydane gelen kesme
void serihaberlesme_kesmesi (){
disable_interrupts(int_rda); // int_rda kesmesini pasif yap
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
// TODO: USER CODE!!
rs485_init(); //rs485 aktif
//clear_interrupt(int_rda);
enable_interrupts(int_rda); //portb kesmelerine izin ver
enable_interrupts(GLOBAL);
while(1) {
output_high(pin_d0); //pic çalıştı
output_high(pin_e0); //'pic877 den max485'e veri gönderme izni verildi
output_low(pin_e1); //'com dan max485'e veri gönderme izni iptal
printf("3"); //seri porta veri gönder
delay_ms(1000); //bekle
}
}
main.h
Kod:
#include <16F877A.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=4000000)
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7, stop=1, parity=N)
//#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7, stop=1, parity=N,STREAM=seri1 )
//#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1, stream=PC)