/Designs/MRAKOMER4/TEST_RS232_OVERRUN/rs232.c
0,0 → 1,77
#include "C:\projekts\PIC_SW\PIC16F88\RS232\rs232.h"
 
#define RCSTA *0x18
#define CREN 4
#define OERR 1
#define FERR 2
 
#define _BV(a) (1<<(a))
 
#int_RDA
RDA_isr()
{
putc(getc());
}
 
 
 
char bit_1,bit_2,bit_3,bit_4;
unsigned int time;
 
void main() {
 
//char a,b,c;
 
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_spi(FALSE);
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);
//enable_interrupts(INT_RDA);
//enable_interrupts(GLOBAL);
setup_oscillator(OSC_4MHZ);
 
input(PIN_B2);
 
printf("\ftest rs232\n\r");
 
time = 0;
for(;;)
{
bit_1 = getc();
delay_ms(time);
 
if (RCSTA & (_BV(OERR))) {printf ("1_RX_halt, overrun\r\n");RCSTA &= (~(1<<CREN));RCSTA |= (1<<CREN);}
if (RCSTA & (1 << FERR)) printf ("1_RX_halt, frame error\r\n");
bit_2 = getc();
delay_ms(time);
 
if (RCSTA & (1 << OERR)) {printf ("2_RX_halt, overrun\n\r");RCSTA &= (~(1<<CREN));RCSTA |= (1<<CREN);}
if (RCSTA & (1 << FERR)) printf ("2_RX_halt, frame error\r\n");
bit_3 = getc();
delay_ms(time);
 
if (RCSTA & (1 << OERR)) {printf ("3_RX_halt, overrun\r\n");RCSTA &= (~(1<<CREN));RCSTA |= (1<<CREN);}
if (RCSTA & (1 << FERR)) printf ("3_RX_halt, frame error\r\n");
bit_4 = getc();
delay_ms(time);
 
if (RCSTA & (1 << FERR)) printf ("4_RX_halt, frame error\r\n");
if (RCSTA & (1 << OERR)) {printf ("4_RX_halt, overrun\r\n");RCSTA &= (~(1<<CREN));RCSTA |= (1<<CREN);};
 
 
putc(bit_1);
putc(bit_2);
putc(bit_3);
putc(bit_4);
putc('\r');
putc('\n');
time = (bit_1 - 0x30) * 1000 + (bit_2 - 0x30)*100 + (bit_3 - 0x30)*10 + bit_4 - 0x30;
if (time > 1000) time = 0;
 
};
 
}
/Designs/MRAKOMER4/TEST_RS232_OVERRUN/rs232.h
0,0 → 1,22
#include <16F88.h>
#device adc=8
 
#FUSES NOWDT //Watch Dog Timer
#FUSES INTRC //Internal RC Osc, no CLKOUT
//#FUSES INTRC
//#FUSES XT
#FUSES PUT //Power Up Timer
//#FUSES NOMCLR //Master Clear pin used for I/O
#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
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOFCMEN //Fail-safe clock monitor disabled
 
 
#use delay(clock=4000000)
#use rs232(baud=2400,parity=N,xmit=PIN_B5,rcv=PIN_B2,bits=8)//,FORCE_HW)
 
 
/Designs/MRAKOMER4/TEST_RS232_OVERRUN/rs232.hex
0,0 → 1,88
:1000000000308A007F290000FF00030E8301A10059
:100010007F08A0000A08A8008A01A00E0408A20018
:100020007708A3007808A4007908A5007A08A6003C
:100030007B08A700831383128C308400801E222843
:100040008C1A3528220884002308F7002408F800B9
:100050002508F9002608FA002708FB0028088A006E
:10006000210E8300FF0E7F0E09008A1124290A1039
:100070008A100A1182070C34743465347334743472
:100080002034723473343234333432340A340D341D
:1000900000340A108A100A11820731345F34523456
:1000A00058345F34683461346C3474342C34203404
:1000B0006F34763465347234723475346E340D3482
:1000C0000A3400340A108A100A11820731345F346E
:1000D000523458345F34683461346C3474342C34A2
:1000E00020346634723461346D34653420346534C0
:1000F000723472346F3472340D340A3400340A109E
:100100008A100A11820732345F34523458345F3413
:10011000683461346C3474342C3420346F34763465
:1001200065347234723475346E340A340D340034EC
:100130000A108A100A11820732345F34523458345C
:100140005F34683461346C3474342C342034663455
:10015000723461346D3465342034653472347234F1
:100160006F3472340D340A3400340A108A100A11C4
:10017000820733345F34523458345F346834613426
:100180006C3474342C3420346F34763465347234E7
:10019000723475346E340D340A3400340A108A1007
:1001A0000A11820733345F34523458345F34683470
:1001B00061346C3474342C342034663472346134D9
:1001C0006D34653420346534723472346F34723473
:1001D0000D340A3400340A108A100A11F23E031852
:1001E0008A0A820034345F34523458345F346834BD
:1001F00061346C3474342C34203466347234613499
:100200006D34653420346534723472346F34723432
:100210000D340A3400340A148A100A118207343467
:100220005F34523458345F34683461346C3474341D
:100230002C3420346F34763465347234723475342F
:100240006E340D340A3400348C1E24291A08BC0084
:100250001A080C1E292999008C128A1122282E3086
:1002600084000008031943290130F800F701F70B57
:100270003729F80B36294A30F700F70B3D290000E3
:100280000000800B342900341030B400F701FA016B
:10029000B10CB00C031C52293208F7070318FA0AF4
:1002A0003308FA07FA0CF70CF90CF80CB40B4829D0
:1002B0008A117C2AF701F801380803103918F7076A
:1002C000F70CF80CB918F707F70CF80C3919F70701
:1002D000F70CF80CB919F707F70CF80C391AF707EF
:1002E000F70CF80CB91AF707F70CF80C391BF707DD
:1002F000F70CF80CB91BF707F70CF80C0034840165
:100300001F308305603083168F001930990022302A
:10031000980090308312980083161F129F121B08BA
:1003200080399B0007309C001F129F121B088039E8
:100330009B0083121F109412831606118614061256
:10034000003083129400831694000108C7390838DE
:100350008100831290010030F80092000030831673
:10036000920007309C0005080330F700F70BB62910
:100370001C0883120D1383169D0160308F00061533
:100380008312AE012E08372000380319CC29AE0A9B
:100390000C1EC8299900C229AD018C1ECD291A084E
:1003A000A9002D08AE002F21981CE329AE012E08CC
:1003B000492000380319E129AE0A0C1EDD299900F5
:1003C000D72918121816181DF029AE012E08622020
:1003D00000380319F029AE0A0C1EEC299900E62911
:1003E0008C1EF0291A08AA002D08AE002F21981C97
:1003F000062AAE012E087F2000380319042AAE0A0F
:100400000C1E002A9900FA2918121816181D132A12
:10041000AE012E08982000380319132AAE0A0C1ECC
:100420000F2A9900092A8C1E132A1A08AB002D08DE
:10043000AE002F21981C292AAE012E08B5200038C5
:100440000319272AAE0A0C1E232A99001D2A181206
:100450001816181D362AAE012E08CE2000380319B2
:10046000362AAE0A0C1E322A99002C2A8C1E362AF5
:100470001A08AC002D08AE002F21181D4A2AAE0123
:100480002E08EB20003803194A2AAE0A0C1E462A11
:100490009900402A981C592AAE012E080B210038D9
:1004A0000319572AAE0A0C1E532A99004D2A181216
:1004B000181629080C1E5A2A99002A080C1E5E2AB2
:1004C00099002B080C1E622A99002C080C1E662A23
:1004D00099000D300C1E6A2A99000A300C1E6E2AF3
:1004E000990030302902AF00B1012F08B00003306D
:1004F000B300E830B20044297908B1007808B000B0
:1005000030302A02B300B8006430B9005A217808AC
:100510003007B4003108B5000318B50A30302B029B
:10052000B700B8000A30B9005A2178083407B8007B
:100530003508B9000318B90A2C083807BA00390879
:10054000BB000318BB0A30303A02AD00CD2963006E
:04400E00313FFE3F01
:00000001FF
;PIC16F88