|
|
View previous topic :: View next topic |
Author |
Message |
yonas
Joined: 26 May 2008 Posts: 1 Location: addis ababa,ethiopia
|
To find the test.c, Comiler.h, Globals.h, and Misc.c files |
Posted: Sun Jun 01, 2008 3:12 am |
|
|
How can I find different files, i.e. test.c, comiler.h, globals.h, and Misc.c from this code so that I can run it easily on pic c compiler
Tx!
Code: | #device *=16 ADC=10
#use delay(clock=20000000)
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use fast_io(D)
int16 photoTRIGGER = 635; // <310mV preset value for light switch
int16 minTEMP = 1372; // 670mV preset min sample value for T (30C)
int16 maxTEMP = 1597; // 780mV preset max sample value for T (38C)
int16 minHUMID = 614; // 350mV preset min value for H (30%RH)
int16 maxHUMID = 1065; // 520mV preset max value for H (52%RH)
int8 photoCOND;
int8 minTempCOND;
int8 maxTempCOND;
int8 minHumidCOND;
int8 maxHumidCOND;
// End Preprocessor Directives
#include "Include\Compiler.h"
#include "Include\Globals.h"
#include "Include\Misc.c"
/******************************************************************************\
* *
* F U N C T I O N P R O T O T Y P E S *
* *
\******************************************************************************/
void initTimers( void);
void initADC( void);
void timer1ISR( void);
void timer2ISR( void); // ISR does not stand for Illinois Street Residence
/******************************************************************************\
* *
* M A I N R O U T I N E *
* *
\******************************************************************************/
#pragma zero_ram // Interesting command ....
void main( void)
{
disable_interrupts(GLOBAL); // We don't want to be interrupted yet
delay_ms(500); // wait for voltages to stablize
Set_Tris_A(MY_TRISA); // Port A's I/O
Set_Tris_B(MY_TRISB); // Port B's I/O
delay_ms(50);
initTimers();
initADC();
delay_ms(50);
while(FOREVER)
{
readADC_1();
readADC_2();
readADC_3();
}
}
// End Main Routine
/******************************************************************************\
* *
* S U B - R O U T I N E I M P L E N T A T I O N S *
* *
\******************************************************************************/
// Purpose: Initializes timer interrupts
// Precondition: None
// Postcondition: Timers and interrupts are enabled
void initTimers(void)
{
setup_timer_1( T1_INTERNAL | T1_DIV_BY_8 ); // confusing?
setup_timer_2( T2_DIV_BY_4, 0x20, 2); // even more so!
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_TIMER2);
enable_interrupts(GLOBAL);
timer1Count = 0;
timer2Count = 0;
timer3Count = 0;
timer4Count = 0;
timer5Count = 0;
}
// Purpose: Initializes ADC
// Precondition: None
// Postcondition: ADC is configured
void initADC(void)
{
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel( 0 );
delay_us(10);
}
//End Sub-Routine Implementions
/******************************************************************************\
* *
* I N T E R R U P T S E R V I C E R O U T I N E S *
* *
\******************************************************************************/
// Purpose: Timer1 ISR
// Precondition: initTimers called
// Postcondition: Timer1 counter updated
#INT_TIMER1
void Timer1ISR(void)
{
timer1Count++;
timer2Count++;
timer3Count++;
timer4Count++;
timer5Count++;
}
#INT_TIMER2
void Timer2ISR(void)
{
if (timer1Count == 0)
{
if ((ADC_1 * 10) < photoTRIGGER)
{
output_low(photo_switch);
photoCOND = 0;
}
else if ((ADC_1 * 10) > photoTRIGGER)
{
output_high(photo_switch);
photoCOND = 1;
}
}
else if ((timer1Count > 0) && (timer1Count < 300))
{
if (photoCOND == 1)
{
output_high(photo_switch);
}
else if (photoCOND == 0)
{
output_low(photo_switch);
}
}
else if (timer1Count == 300)
{
if (photoCOND == 1)
{
output_high(photo_switch);
}
else if (photoCOND == 0)
{
output_low(photo_switch);
}
timer1Count = 0;
}
if (timer2Count == 0)
{
if ((ADC_2 * 10) > maxTEMP)
{
output_high(fan_switch);
maxTempCOND = 1;
}
else if ((ADC_2 * 10) < maxTEMP)
{
output_low(fan_switch);
maxTempCOND = 0;
}
}
else if ((timer2Count > 0) && (timer2Count < 300))
{
if (maxTempCOND == 1)
{
output_high(fan_switch);
}
else if (maxTempCOND == 0)
{
output_low(fan_switch);
}
}
else if (timer2Count == 300)
{
if (maxTempCOND == 1)
{
output_high(fan_switch);
}
else if (maxTempCOND == 0)
{
output_low(fan_switch);
}
timer2Count = 0;
}
if (timer3Count == 0)
{
if ((ADC_2 * 10) < minTEMP)
{
output_high(heater_switch);
minTempCOND = 1;
}
else if ((ADC_2 * 10) > minTEMP)
{
output_low(heater_switch);
minTempCOND = 0;
}
}
else if ((timer3Count > 0) && (timer3Count < 300))
{
if (minTempCOND == 1)
{
output_high(heater_switch);
}
else if (minTempCOND == 0)
{
output_low(heater_switch);
}
}
else if (timer3Count == 300)
{
if (minTempCOND == 1)
{
output_high(heater_switch);
}
else if (minTempCOND == 0)
{
output_low(heater_switch);
}
timer3Count = 0;
}
if (timer4Count == 0)
{
if ((ADC_3 * 10) < minHUMID)
{
output_high(mister_switch);
minHumidCOND = 1;
}
else if ((ADC_3 * 10) > minHUMID)
{
output_low(mister_switch);
minHumidCOND = 0;
}
}
else if ((timer4Count > 0) && (timer4Count < 300))
{
if (minHumidCOND == 1)
{
output_high(mister_switch);
}
else if (minHumidCOND == 0)
{
output_low(mister_switch);
}
}
else if (timer4Count == 300)
{
if (minHumidCOND == 1)
{
output_high(mister_switch);
}
else if (minHumidCOND == 0)
{
output_low(mister_switch);
}
timer4Count = 0;
}
if (timer5Count == 0)
{
if ((ADC_3 * 10) > maxHUMID)
{
output_high(dehumid_switch);
maxHumidCOND = 1;
}
else if ((ADC_3 * 10) < maxHUMID)
{
output_low(dehumid_switch);
maxHumidCOND = 0;
}
}
else if ((timer5Count > 0) && (timer5Count < 300))
{
if (maxHumidCOND == 1)
{
output_high(dehumid_switch);
}
else if (maxHumidCOND == 0)
{
output_low(dehumid_switch);
}
}
else if (timer5Count == 300)
{
if (maxHumidCOND == 1)
{
output_high(dehumid_switch);
}
else if (maxHumidCOND == 0)
{
output_low(dehumid_switch);
}
timer5Count = 0;
}
} |
|
|
|
Ttelmah Guest
|
|
Posted: Sun Jun 01, 2008 3:09 pm |
|
|
From the original author of the code.....
These are _not_ standard CCS files. 'Globals', probably contains definitions of global variables (there are several used in the code, with no definitions present). Misc, would probably contain the code to read the adc (there are three functions being used to do this, that are not standard CCS functions). The code as posted, wouldn't compile, even if these were present, since the processor type definition is missing at the start of the code.
Basically, you will either have to write the code again, from a description of what it is expected to do, or get hold of the source.
Best Wishes |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Sun Jun 01, 2008 4:26 pm |
|
|
Yonas,
Just a little bit of Googling finds this stuff.
First, Google for the filenames, like this:
Quote: | "misc.c" "globals.h" "compiler.h" |
The first thing we find is that you have been posting this same
question on other PIC boards, instead of searching for it yourself.
But anyway, we quickly find that these files are used by students
for the ECE445 course at the University of Illinois.
Quote: | courses.ece.uiuc.edu/ece445/projects |
By playing around with the URL, we eventually get this page.
https://courses.ece.uiuc.edu/ece445/
Once you've got that, you eventually get to their PIC page.
http://courses.ece.uiuc.edu/ece445/wiki/?n=Topics.PicProgramming
Down at the bottom in "The Code" section, they've got all those
include files zipped up for you, ready to download. |
|
|
|
|
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
|