Searching \ for '[PIC] Help with porting from Hitech C to C18' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: massmind.org/techref/microchip/ios.htm?key=port
Search entire site for: 'Help with porting from Hitech C to C18'.

Exact match. Not showing close matches.
PICList Thread
'[PIC] Help with porting from Hitech C to C18'
2009\07\16@222350 by Carl Denk

flavicon
face
I am porting a Hitech C program for a 16F870 to C18 for a 18F1320.
Hitech has the REPT directive to insert a variable number of repetitions
a a group of code. How would I replace this group of code with C18? This
is a critical timing delay.

       REPT    (INST_CYCLES_NEEDED - 3)
       NOP
       ENDM

The program allows to specify the clock speed, which then adjusts the
number of clock periods to get the desired delays. I could pick a clock
speed and insert the necessary NOP's, but would try to maintain the
timing. I only have the free versions of both compilers, which for a
hobbiest is all I can justify.  I don't hink the Hitech handles the
18F1320.  :)

Thanking in advance.

2009\07\17@041023 by Alan B. Pearce

face picon face
>How would I replace this group of code with C18? This
>is a critical timing delay.
>
>        REPT    (INST_CYCLES_NEEDED - 3)
>        NOP
>        ENDM
>
>The program allows to specify the clock speed, which then
>adjusts the number of clock periods to get the desired delays.

The REPT operator looks like it is possibly a macro, which is probably
defined in one of the include files. As a start, I would try trawling any
likely looking include files (compiler.h?, any processor specific .h files?)
and searching them with a text editor for 'rept' to see if a macro is
#defined. You could then probably use the macro as is in your files.

2009\07\17@082025 by Isaac Marino Bavaresco

flavicon
face
The rept directive just tells the assembler to temporarily create an
unnamed macro and repeat it a number of times.
The MPASM has the while directive. It is a little different but should work.

Eg.:

n   set (INST_CYCLES_NEEDED - 3)
   while n > 0
       nop
n   set n - 1
   endw

Regards,

Isaac


Alan B. Pearce escreveu:
{Quote hidden}

__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/

More... (looser matching)
- Last day of these posts
- In 2009 , 2010 only
- Today
- New search...