![](templates/subSilver/images/CCSLogo.jpg) |
![CCS C Software and Maintenance Offers](templates/subSilver/images/forumAd6.jpg) |
View previous topic :: View next topic |
Author |
Message |
Andreas
Joined: 25 Oct 2004 Posts: 136
|
16F690 Receive Interrupt ??? |
Posted: Fri May 14, 2010 3:18 am |
|
|
Hello Friends,,
I run into a confusing problem with a new project using F960
The PWM Output works fine, the key is recognized correct, the PWM is switched to the new value, XMIT of the little message at 115200 baud works perfect.
BUT I cant receive any data , can somebody give me hint ??
Any asnwers very appriciated
best regards
Andreas(Vienna/Austria)
Code: | #include <16F690.h>
//#device ICD=TRUE
#fuses HS,NOWDT
#use delay(INTERNAL=8MHz)
#use rs232(baud=115200,parity=N,BITS=8,XMIT=PIN_C0,RCV=PIN_C1,stream=com1,errors)
#define HOLD PIN_A2
INT i;
int1 lase = 0;
int1 keyp = 0;
long d;
long off;
int pr;
long ticker = 10;
#int_RDA
void Interrupt1USART (void)
{
BYTE ch;
output_toggle(HOLD);
ch = getch(com1);
putc(ch,com1);
}
#int_timer1
void timer1_isr()
{
set_timer1(0x3B00); // Setupt Timer1 as 100ms Timer 3B00
ticker++; // Increment 100ms Timer
if (ticker > 10)
{
ticker = 0;
fprintf(com1,"TEST");
}
}
void main()
{
SETUP_TIMER_2(T2_DIV_BY_4,100,1);
SETUP_CCP1(CCP_PWM);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);
enable_interrupts(int_timer1);
enable_interrupts(INT_RDA);
enable_interrupts(global);
set_TRIS_C(0x82);
d = 200;
pr = 0;
i = 'T';
off = 2;
SET_PWM1_DUTY(d);
lase = 0;
while(TRUE)
{
if (keyp == 0)
{
if (input(PIN_C7)==1)
{
lase = 0;
SET_PWM1_DUTY(off);
}
else
{
lase = 1;
SET_PWM1_DUTY(d);
}
}
}
}
|
|
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19359
|
|
Posted: Fri May 14, 2010 4:01 am |
|
|
The receive interrupt, will only fire, when the _hardware_ UART receives a character.
What pins is the hardware UART connected to on the 690 (it is _not_ pins C0/C1....)?.
Till you use the right pins, the UART won't work...
Look at the data sheet. RX, and TX pins.
Best Wishes |
|
![](templates/subSilver/images/spacer.gif) |
Andreas
Joined: 25 Oct 2004 Posts: 136
|
|
Posted: Fri May 14, 2010 4:19 am |
|
|
Hi Ttelmah,
Thanks for Your fast reply, of course I am using
Receive Pin is RC1, TX Pin is RC0.
That´s really something which is not clear for me, unfortunately this chip needs a special header to be debugged with the ICD.
best regards
Andreas |
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19359
|
|
Posted: Fri May 14, 2010 4:25 am |
|
|
Look at table 5 in the data sheet.
RX, is pin B5, and TX is pin B7. The UART will _only_ work, if you use these pins.
Best Wishes |
|
![](templates/subSilver/images/spacer.gif) |
Andreas
Joined: 25 Oct 2004 Posts: 136
|
|
Posted: Fri May 14, 2010 6:42 am |
|
|
Hi,
Yes, thats what I thought at the beginning, I was doing it at first with the use rs232 statement and I was thinking that this is using the standard IO Pins but I could see that the Data was coming out at A1 instead of the B Port Pins.
But anyhow now I will try it with Your suggestion !
Thanks for Your quick help, will try it on sunday night
best regards
Andreas |
|
![](templates/subSilver/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|