![](templates/subSilver/images/CCSLogo.jpg) |
![CCS C Software and Maintenance Offers](templates/subSilver/images/forumAd6.jpg) |
View previous topic :: View next topic |
Author |
Message |
Testadura
Joined: 11 Nov 2004 Posts: 7 Location: ITALY
|
Comparator ( internal connection ) |
Posted: Mon Nov 15, 2004 8:15 am |
|
|
Hi,
I have need to connect C1- with C2- by software .
( see PIC16781 datasheet page 96 figure 12-5 )
The connection is internal , but in the register I haven't found the appropriate bit control.
I ' am trying to use two comparator with common input (C1- an C2-) while C1+, C2+ are connected to external pin
Any idea? |
|
![](templates/subSilver/images/spacer.gif) |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon Nov 15, 2004 1:25 pm |
|
|
The 16C781 data sheet has sample code (in ASM) for a window
comparator in Figure 12-3. You can convert that code to CCS C.
Some of the ASM code can be converted to use CCS built-in functions.
But CCS apparently doesn't have any built-in functions for the
comparator in version PCM version 3.212. The easiest way to
fix this problem is by writing directly to the PIC's registers.
For example, here is the code from Figure 12-3 that configures
the comparator registers.
Code: | MOVLW B’10000000’ ; C1: no output
MOVWF CM1CON0 ; VREF1, AN4
MOVLW B’10010000’ ; C2: no output
MOVWF CM2CON0 ; invert,VREF1,AN4 |
The following code is a translation of the ASM code above, to CCS:
Code: |
// Declare the addresses of the Comparator registers.
// The addresses come from Figure 2-3 of the 16C781 data sheet.
#byte CM1CON0 = 0x119
#byte CM2CON0 = 0x11A
main()
{
// Put other init code here.
// Setup comparator registers.
CM1CON0 = 0x80;
CM2CON0 = 0x90;
} |
You don't need to select the RAM bank. The CCS compiler automatically
takes care of setting the proper bank.
I have shown only part of the translated code. You need to do the rest.
Also, version 3.212 doesn't appear to support the comparator interrupt.
You will need to add an #int_default function to your program to do this.
See the CCS manual (or the Help file) for information on #int_default.
See this thread for more information:
http://www.ccsinfo.com/forum/viewtopic.php?t=6656&highlight=intdefault |
|
![](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
|