mark1st
Newbie
Offline
Posts: 9
Thank You
-Given: 1
-Receive: 3
|
|
« on: October 23, 2007, 12:55:57 12:55 » |
|
Does anyone use cc5x ( http://www.bknd.com/cc5x/index.shtml)? How it works? I've heard it's the best compiler for PICmicro (code savings of 20-30% compared to other C compilers) regards, mark
|
|
« Last Edit: October 23, 2007, 12:57:48 12:57 by mark1st »
|
Logged
|
|
|
|
programmer_100
Junior Member
Offline
Posts: 58
Thank You
-Given: 93
-Receive: 94
|
|
« Reply #1 on: October 23, 2007, 11:37:15 23:37 » |
|
a very good compiler...
I agree, very good compiler, don't know about the code savings though, 30% might be a bit optimistic.
|
|
|
Logged
|
|
|
|
phamthaihoa
Newbie
Offline
Posts: 8
Thank You
-Given: 8
-Receive: 2
|
|
« Reply #2 on: October 28, 2007, 03:32:40 03:32 » |
|
a very good compiler...
I don't think so, it can't process number bigger than 16bit.
|
|
|
Logged
|
|
|
|
sonsivritwchen
Junior Member
Offline
Posts: 37
Thank You
-Given: 18
-Receive: 15
|
|
« Reply #3 on: October 28, 2007, 01:00:57 13:00 » |
|
From the website of cc5x. It support integer size from 8 to 32 bits. There could be some misunderstandings in the previous post.
|
|
|
Logged
|
|
|
|
robban
Senior Member
Offline
Posts: 265
Thank You
-Given: 34
-Receive: 38
Warrior
|
|
« Reply #4 on: October 29, 2007, 02:38:34 14:38 » |
|
Without licence the cc5x can output 1 k of hexcode but it's always possible to split the code... If You integrate it with MPLAB, You can see the optimization level and how much code it saves. Otherwise just put it in the %root% and You have all You need in just one folder.
|
|
« Last Edit: November 01, 2007, 11:07:08 23:07 by robban »
|
Logged
|
Code Warrior
|
|
|
sam_des
Senior Member
Offline
Posts: 256
Thank You
-Given: 128
-Receive: 151
|
|
« Reply #5 on: October 30, 2007, 06:01:51 18:01 » |
|
Hi, Yes,a very good compiler & largly under-estimated due to lack of IDE & other flashy stuff. It's just the command-line tool. Just have a look at all the help files it provides, you can see that whoever wrote this compiler has done great job. I've found no other C compiler which provides so much support for weird PIC architecture. Though it lacks some stuff which all C-programmers take for granted, it does generate compact code & with least RAM. BTW,it does support 8,16,32 bit integers, 24,32-bit floats, 16,24 bit fixed points numbers. I have been looking for crack of this for long time(Have tried some things myself, but.. ). It does allow many 1k modules linked by MPLAB linker, though at reduced optimization, so why bother. Still, It will be nice to see this one cracked !! sam_des
|
|
|
Logged
|
Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
|
|
|
recan
Guest
|
|
« Reply #6 on: November 02, 2007, 11:41:01 23:41 » |
|
test-it... a red edition?
|
|
« Last Edit: November 02, 2007, 11:51:34 23:51 by recan »
|
Logged
|
|
|
|
Bart
Guest
|
|
« Reply #7 on: November 03, 2007, 02:38:46 02:38 » |
|
CC8e is the pic18 version... with same demo limits.... there is also a cc8etest version which checks your code past the 1k limit ,, but wont generate any output and makes all assembly tags M000
|
|
|
Logged
|
|
|
|
sam_des
Senior Member
Offline
Posts: 256
Thank You
-Given: 128
-Receive: 151
|
|
« Reply #8 on: November 03, 2007, 08:00:02 20:00 » |
|
Hello,
Thanks recan for RED Edition of cc5x. Well, it differs from STANDARD & EXTENDED editions of cc5x in following areas... 1] No multitaksing 2] No 24/32-bit integers, 16/32-bit floating, 8/24/32-bit fixed point nos. IT does support all the other features completely.
Your archive does not contain the license as said on cc5x home-page,but I was able to generate more than 1k code which is limit for FREE edition. Also all the optimizations are fully working. Though I have not tested on real h/w, it seems working nicely.
If anyone find other limitations, I'll be greatful to hear.
sam_des
|
|
|
Logged
|
Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
|
|
|
sam_des
Senior Member
Offline
Posts: 256
Thank You
-Given: 128
-Receive: 151
|
|
« Reply #9 on: November 04, 2007, 05:13:32 17:13 » |
|
Hi,
I ported one of my PIC-14 projects to few C Compilers & here are the results--
PICC(3.249) - ROM: 2492 Words, RAM: 91-114, Stack 7+1 WIZ-C(14) - ROM: 2444 Words, RAM: 123, Stack 6+1 HT-PIC(9.50 PL2)- ROM: 1959 Words, RAM: 113, Stack 5+2 CC5X(3.2N RED) - ROM: 1593 Words, RAM: 94, Stack 4+2
All the compilers were configured for maximum optimization level. Though CC5X has some limitations like single dim array, simplified math expressions etc, it seems that when all other things are equal, CC5X is clearly a winner.
Can anyone share STANDARD or EXTENDED edition of cc5x ?
regards,
sam_des
|
|
|
Logged
|
Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
|
|
|
bugmike25
Junior Member
Offline
Posts: 84
Thank You
-Given: 15
-Receive: 13
|
|
« Reply #10 on: November 04, 2007, 06:20:24 18:20 » |
|
Does anyone have a cracked version for this program?
|
|
|
Logged
|
|
|
|
robban
Senior Member
Offline
Posts: 265
Thank You
-Given: 34
-Receive: 38
Warrior
|
|
« Reply #11 on: November 05, 2007, 11:53:15 11:53 » |
|
CC5x red: I've been fiddling around with this compiler and it is able(for some reasons) to output hex-files. But - sorry to say - it is full of bugs. I tried to compile the following code(among others) in the MPLAB environment(though my favourite is TextPad):
/* Crypto program. Let for instance putchar(c/c*2); and everything echoes back as garbage) echo characters, serial input/output for 16F84
Serial communication (RS232) Note that PIC16F84 doesn't even have an UART module! one start bit, one stop bit, 8 data bits, no parity = 10 bits Baudrate: 9600 baud ser_in RB1, ser_out RB0 */ #pragma config |= 0x3ff1 //(Fosc=XT, WDTE=off, PWRT=on, CP=off)
bit putchar(char); //function prototype char getchar(void); //function prototype
void main(void) { char c; PORTB = 0b00000001; TRISB = 0b01111110; while(1) { c = getchar(); //input one character if(c == '\r') { putchar('\r'); //line feed putchar('\n'); //carriage return } else putchar(c); //echo the character /*Functions*/ bit putchar(char d_out) //sends one character. Baudrate = 9600 = 104.167 usec/bit { char bitCount, ti; if (d_out == '\0') return 0; //refuse to send "end of string" PORTB.0 = 0 //set startbit for(bitCount = 10; bitCount 0; bitCount--) { //delay one bit 104 usec at 4 MHz (5+30*3-1+1+9=104) ti = 30;do;while(--ti 0); nop() Carry = 1; //stop bit d_out = rr(d_out); //rotate right trhough carry PORTB.0 = Carry; } return 1 // all done } char getchar(void) //receives one character {
//here we use a delay of 1.5 bit = 156 usec char d_in, bitCount, ti; while(PORTB.1 ==1) //wait for startbit //delay 1.5 bit 156 usec @ 4 MHz (5+47*3-1+2+9=156) ti = 47; do; while(ti 0); bitCount--) { Carry = PORTB.1; d_in = rr(d_in); // rotate carry right ti = 30; do; while(--ti 0); nop(); } return d_in; } ***********************************************************************
Here's what the compiler tells me:
Executing: "C:\CC5X\CC5X.EXE" echo84.c -CC -fINHX8M -p16F84 -a -L -Q -V -FM CC5X Version 3.2N, Copyright (c) B Knudsen Data, Norway 1992-2006, No. 1705 --> RED edition, 8-16 bit int, 24 bit float, 8k code echo84.c:
bit putchar(char d_out) //sends one character. Baudrate = 9600 = 104.167 usec/bit ^------ Error[1] C:\CC5X\echo84\echo84.c 34 : Syntax error (The expression must be corrected. The marker ^------ shows the approximate position where CC5X gives up. The documentation should be checked if the cause is not obvious)
Error options: -ew: no warning details -ed: no error details -eL: list details BUILD FAILED: Mon Nov 05 12:48:39 2007
Any clever remarks? All the example code is working OK. I don't have the energy to inform Knudsen, all they do is to give me a "Thank You" and forget me
//Cheers Robban
|
|
« Last Edit: November 05, 2007, 12:00:25 12:00 by robban »
|
Logged
|
Code Warrior
|
|
|
recan
Guest
|
|
« Reply #12 on: November 05, 2007, 12:44:25 12:44 » |
|
try this correction...
{ char c; PORTB = 0b00000001; TRISB = 0b01111110; while(1) { c = getchar(); //input one character if(c == '\r') { putchar('\r'); //line feed putchar('\n'); //carriage return } else putchar(c); //echo the character //////////////////// { { ////////////////// /*Functions*/ bit putchar(char d_out) //sends one character. Baudrate = 9600 = 104.167 usec/bit
|
|
|
Logged
|
|
|
|
ipek
Junior Member
Offline
Posts: 95
Thank You
-Given: 60
-Receive: 79
|
|
« Reply #13 on: November 05, 2007, 01:32:46 13:32 » |
|
hello avaible old version cracked unlimit & editor only by path change very easy v3.2g only 12xx and 16xx compiled 18xx not enought http://rapidshare.com/files/67595827/ccccccc5x.rar.html
|
|
|
Logged
|
|
|
|
sam_des
Senior Member
Offline
Posts: 256
Thank You
-Given: 128
-Receive: 151
|
|
« Reply #14 on: November 06, 2007, 04:44:44 16:44 » |
|
Hi robban, Which C compiler accepted your program ? Just tell me & I will stay away from it for rest of my life. Here are some of the errors in your program, all marked "// ERROR //" I got these just by reading your program & I haven't bothered to lint/compile. There may be more of them. 1] else putchar(c); //echo the character //ERROR// missing closing bracket } 2] PORTB.0 = 0 //ERROR// missing semicolon //set startbit 3] for(bitCount = 10; bitCount 0; bitCount--)//ERROR//missing condition in for() 4] ti = 30;do;while(--ti 0); nop() //ERROR// missing condition in while //ERROR// missing semicolon at the after nop() //ERROR// Syntax of do-while() loop. 5] return 1 //ERROR// missing semicolon // all done 6] while(PORTB.1 ==1) //ERROR//missing semicolon //wait for startbit 7] ti = 47; do; while(ti 0); bitCount--; //ERROR//missing condition in while() 8] ti = 30; do; while(--ti 0); nop(); //ERROR// missing condition in while() //ERROR// Syntax of do-while() loop No wonder Knudsen guys said Thank You & forgot to reply. They are not there to teach you C. I hope you will start using tools like "lint". & don't forget to tell me which C compiler did accepted this. You will do me a great favour. BTW thanks ipek for your post. It seems to generate code for more than 1k,but does bot generate other files such as listing/asm/fcs etc. Also all other demo restrications remain. regards, sam_des
|
|
« Last Edit: November 06, 2007, 05:00:46 17:00 by sam_des »
|
Logged
|
Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
|
|
|
robban
Senior Member
Offline
Posts: 265
Thank You
-Given: 34
-Receive: 38
Warrior
|
|
« Reply #15 on: November 06, 2007, 06:30:50 18:30 » |
|
Thanx for Yr. effort. I got this code snippet from a web-based university in a course in Mechatronics. This snippet is solely intended for the CC5X. I have not tried it on another compiler, and I think I never will. CC5X is not ANSI and is known for it's ability to integrate asm-code and C. In my opinion, it's better to use MPASM(35 instructions) with tons of example code. If You manage to compile properly, let me know...
|
|
|
Logged
|
Code Warrior
|
|
|
sam_des
Senior Member
Offline
Posts: 256
Thank You
-Given: 128
-Receive: 151
|
|
« Reply #16 on: November 06, 2007, 07:38:54 19:38 » |
|
Hello robban, Here is your code which can now be compiled using cc5x RED 3.2N. I've changed it somwhat, but still it is quite original code you posted. /* Crypto program. Let for instance putchar(c/c*2); and everything echoes back as garbage) echo characters, serial input/output for 16F84
Serial communication (RS232) Note that PIC16F84 doesn't even have an UART module! one start bit, one stop bit, 8 data bits, no parity = 10 bits Baudrate: 9600 baud ser_in RB1, ser_out RB0 */ #pragma config |= 0x3ff1 //(Fosc=XT, WDTE=off, PWRT=on, CP=off)
bit putchar(char); //function prototype char getchar(void); //function prototype
void main(void) { char c; PORTB = 0b00000001; TRISB = 0b01111110; while(1) { c = getchar(); //input one character if('r' == c) { putchar('\r'); //line feed putchar('\n'); //carriage return } else putchar(c); //echo the character ??? Return value not checked ??? } } /*Functions*/ bit putchar(char d_out) //sends one character. Baudrate = 9600 = 104.167 usec/bit { char bitCount, ti;
if ('\0' == d_out ){ return 0; } //refuse to send "end of string"
PORTB.0 = 0; //set startbit for(bitCount = 10; bitCount!=0; bitCount--) { //delay one bit 104 usec at 4 MHz (5+30*3-1+1+9=104)
// sam_des -- ??? Check this delay whether this is indeed 104uS @ 4MHz ??? ti = 30; do { nop(); }while(--ti);
Carry = 1; //stop bit d_out = rr(d_out); //rotate right trhough carry PORTB.0 = Carry; }
//??? sam_des -- Stop Bit ??? return 1; // all done }
char getchar(void) //receives one character {
//here we use a delay of 1.5 bit = 156 usec char d_in, bitCount, ti;
while(PORTB.1); //wait for startbit // sam_des -- ??? Added check for 10 bits in recved char ??? for( bitCount=10; bitCount!=0; bitCount-- ) { //delay 1.5 bit 156 usec @ 4 MHz (5+47*3-1+2+9=156)
// sam_des -- ??? Check if this delay is indeed 156uS @ 4MHz ??? ti = 47; do { }while(--ti);
Carry = PORTB.1; d_in = rr(d_in); // rotate carry right
ti = 30; do { nop(); }while(--ti); } return d_in; }
But I've no doubts that this code will NOT work. Whoever wrote this code, must have forgot half-way what he/she intended to do Some suggestions, Few of them, I've added into the code above. Others.. 1] putchar() - for() must do the delay for stop-bit also after 8 char bits. - Check the return value of putchar(). 2] getchar() - We must check each bit atleast 3-times during each bit-period & take it as 1 or 0 depending max. no. of 0s or 1s deteced. - Since Tx & Rx bauds are same(9600), bit period is same(104uS) in both cases. regards, sam_des
|
|
|
Logged
|
Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
|
|
|
robban
Senior Member
Offline
Posts: 265
Thank You
-Given: 34
-Receive: 38
Warrior
|
|
« Reply #17 on: November 06, 2007, 09:17:01 21:17 » |
|
Thanx sam_des! I've must have been tired yesterday, I always sit too long without break, but here's the corrected code:
/* echo84.c echo charcters, serial input/output ( for 16F84 without UART) */ /* SERIAL COMMUNICATION (RS232) ============================ One start bit, one stop bit, 8 data bit, no parity = 10 bit. Baudrate: 9600 baud = 104.167 usec. per bit. //could be increased to 115000 Kbaud ser_in RB1 ser_out RB0 */ /* Circuitprogrammer Configuration: FOSC=XT, WDTE=off, PWRT=on, CP=off */ #pragma config |= 0x3ff1 bit putchar( char ); /* function prototype */ char getchar( void ); /* function prototype */ void main( void) { char c; PORTB = 0b00000001; TRISB = 0b11111110; while( 1) { c = getchar( ); /* input 1 character */ if( c == '\r') { putchar('\r'); putchar('\n'); } /* "Line Feed" and "Carrige Return" */ else putchar(c); /* echo the character */ } }
/* Functions ========= */ bit putchar( char d_out ) /* sends one char */ { char bitCount, ti; /* One start bit, one stop bit, 8 data bit, no parity = 10 bit. */ /* Baudrate: 9600 baud = 104.167 usec. per bit. */ if(d_out == '\0') return 0; /* refuse to send "end of string" */ PORTB.0 = 0; /* set startbit */ for ( bitCount = 10; bitCount>0 ; bitCount-- ) { /* delay one bit 104 usec at 4 MHz (5+30*3-1+1+9=104) */ ti = 30; do ; while( --ti > 0); nop(); Carry = 1; /* stopbit */ d_out = rr( d_out ); /* Rotate Right through Carry */ PORTB.0 = Carry; } return 1; /* all done */ } char getchar( void ) /* recieves one char */ { /* One start bit, one stop bit, 8 data bit, no parity = 10 bit. */ /* Baudrate: 9600 baud = 104.167 usec. per bit. */ char d_in, bitCount, ti; while( PORTB.1 == 1 ) /* wait for startbit */ ; /* delay 1,5 bit 156 usec at 4 MHz ( 5+47*3-1+2+9=156) */ ti = 47; do ; while( --ti > 0); nop2(); for( bitCount = 8; bitCount > 0 ; bitCount--) { Carry = PORTB.1; d_in = rr( d_in); /* rotate carry */ /* delay one bit 104 usec at 4 MHz (5+30*3-1+1+9=104) */ ti = 30; do ; while( --ti > 0); nop(); } return d_in; }
//Compiles alright. As You can see, the CC5X syntax is a bit unusual
|
|
« Last Edit: November 14, 2007, 06:20:06 06:20 by robban »
|
Logged
|
Code Warrior
|
|
|
sam_des
Senior Member
Offline
Posts: 256
Thank You
-Given: 128
-Receive: 151
|
|
« Reply #18 on: November 07, 2007, 11:26:59 11:26 » |
|
Hi robban, Glad you get that working But I don't understand why you say that cc5x has unusual syntax ?? I think any ANSI C compiler will accept this as valid program.( with some mods which are PIC dependent) No doubt cc5x has limitations regarding array dims & complex expression evaluation,but I guess they are rather design decisions due to lack of stack in PIC-14. I would like to add that whoever wrote your code has very bad taste of indentation & other c-style issues. That's what make it look rather strange. e.g. do; while(--ti > 0); Though this is a valid C-statement, but it is better to have it like do{ }while(--ti>0); or simply as while(--ti>0) without do. reagrds, sam_des
|
|
|
Logged
|
Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
|
|
|
robban
Senior Member
Offline
Posts: 265
Thank You
-Given: 34
-Receive: 38
Warrior
|
|
« Reply #19 on: November 07, 2007, 12:56:57 12:56 » |
|
Hi sam_des! Well, I admit the syntax isn't quite unusual in the above example, and the indentation is solely my responisibility. However, here's another code snippet(Hello World!) which shows that the CC5X can't handle string constants in the usual way, but there is a built -in workaround with skip(x) and #pragma return[] Ex: ANSI_C allows: text1[] = "Hello World!\r\n";
In Assembler it will look like this:
text1 addwf PCL,F ;jump indirect W(working register retlw 0x48 ; 'H' retlw 0x65 ; 'e' retlw 0x6c ; 'l' retlw 0x6c ; 'l' retlw 0x6f ;'o'
There's no obvious way to do this in C, so the CC5X has this skip(x)-function. The above ANSI-C code in CC5X is:
char text1(char x) { skip(x); #pragma return[] = "Hello World!" '\r' '\n' '\0' The skip function just skip x instructions and the #pragma return[] gives You the opportunity to write a whole string.
Here's the code: /* hello62x.c "Hello World!" program for 16F628 */ /* 9600 baud */
#include "16f628.h" #pragma config |= 0x3f90 /* function prototypes */ void initserial( void ); /* from seriF62x.c */ bit putchar( char ); /* from seriF62x.c */ void delay( char ); /* from delays.c */ char text1( char );
#include "seriF62x.c" #include "delays.c"
void main(void) { char i; /* Initialise serial port */ initserial(); putchar('\r'); putchar('\n');
/* print textstring text1 */ for(i = 0; putchar( text1(i)) ; i++) ; delay(10); }
/* String to write. Note the special syntax with skip(x) and #pragma return[], it's like a loop. char text1( char x) { skip(x); #pragma return[] = "Hello World!" '\0' } //Cheers Robban
|
|
|
Logged
|
Code Warrior
|
|
|
sam_des
Senior Member
Offline
Posts: 256
Thank You
-Given: 128
-Receive: 151
|
|
« Reply #20 on: November 07, 2007, 06:52:53 18:52 » |
|
Hello rabban,
cc5x does accepts tranditional C-string notation- const char Hello[] = "Hello World\n\r"; Your example just shows one of the ways by which string can be added to cc5x program.
It is worth noting that cc5x also --
1] Allows to store ASCII strings as Packed ASCII(2 char/14-bit word) for CPUs which can read their code-memory. Compiler even detects whether 'retlw' or code-read will be more efficient for a particular string. For large string data this reduces the code-size nearly to half. As far as I know no other C-compiler for PIC-14 allows such packed ASCII.
3] cc5x does intelligent literal-folding, i.e. It merges 2 similar strings into 1. See cc5x manual. This feature is also unknown in other PIC compilers.
3] For arrays of strings you can do like- struct { const char *s; // In ROM }StrArray[] = { "str1", "str2", "str3" // In ROM };
Now you can access any of string as "StrArray[index].s"
reagrds, sam_des
|
|
|
Logged
|
Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
|
|
|
robban
Senior Member
Offline
Posts: 265
Thank You
-Given: 34
-Receive: 38
Warrior
|
|
« Reply #21 on: November 08, 2007, 03:56:04 03:56 » |
|
Thanx sam_des for taking the effort to thoroughly read the CC5X manual Ambitious guy You are! Have You tried to exceed the 8 k hex-file yet? There are some limitation when You do that. In MPLAB they always ask me for a linker-script when splitting several C-files into two or more. The manual also warn agaisnt it, due to reduced optimization among other things. On the other hand, when I use TextPad(or whatever Yr.choice is) it always comilpe correct(provided You put all the necessasry files in one folder and put .c-files and headers in the right context). OK, I miss the MPLAB SIM, but I have other means to debug my projects(LED:S and output of data when it comes to sensors and similar. I also have a function that let's You output a reult to another file. Useful for all sorts of math and other appliances. Use bloodshed devcpp. May we can port it to CC5X. Cheers robban
|
|
« Last Edit: November 08, 2007, 04:00:31 04:00 by robban »
|
Logged
|
Code Warrior
|
|
|
sam_des
Senior Member
Offline
Posts: 256
Thank You
-Given: 128
-Receive: 151
|
|
« Reply #22 on: November 08, 2007, 10:28:32 10:28 » |
|
Hello robabn, I like to know my tools well. So I always spend some time reading manuals & experimenting with tool,to see if tool really does what manual says. Well, experience is the best teacher & i had plenty of it in the past. 8k hex ? 8kWords or 8kBytes ? Till now I haven't experience any problems when my hex-size reached 7700 kwords. What limitations you got ? May be I have overlooked something ! And cc5x supports only PIC with 14-BIT Program Counter & thus don't need to support code excess of 8kWords(2^14 = 16384 bytes or 8192 words). As to your MPLAB problem - use only your file containing main() & other C/H includes as source file & don't include other "C" files in MPLAB project. It will now compile correctly without asking for Linker scripts. You will able to simulate C or ASM level code. Mind that cc5x generates only COD file & not COFF. Hence there is no type information for C-variables in COD ! & my choice for editor is JFE & Programmer's Notepad, both support C & work very well with makefiles - my normal method of compile. regards, sam_des
|
|
|
Logged
|
Never be afraid to do something new. Remember Amateurs built the Ark, Professionals built the Titanic !
|
|
|
robban
Senior Member
Offline
Posts: 265
Thank You
-Given: 34
-Receive: 38
Warrior
|
|
« Reply #23 on: November 08, 2007, 01:31:12 13:31 » |
|
Thanx sam_des! According to Knudsen, the red-edition of CC5X is capable of 8 K hex-code. I dubt I'll will use more(at least in one module). Do Yo have a huge -code just for testing. There are not many around, since people tend to use(or crack) expensive stuff. I used to use Jen's file editor(when CC5x was a novelty) earlier, but as I said - for me - TexPad works better(old habit dies slowly). I am glad You really take the time to study the CC5X manual. Myself I work with accelerometer's and found I got most control using assembly. The MPLAB does have a SIM, but it's too tedious to arrange stimulus for different circumstances. By the way, www.eleccenter.com is selling a USB-ICD2 clone for 72 $ incl. freight. It is possible to debug both in C and asm(unless You mix them two). I bought one a year ago, no problem. There is also a serial programmer (abt. 36 bucks)which could be used as a test gadget: PIC-PG1 - ICSP SERIAL PORT DONGLE PROGRAMMER FEATURES: PIC-PG1 is programmer based on JDM design which takes all necessary signals and power supply from RS232 serial port. It uses 6 pin 0.1" step ICSP connector to connect to target board with the PIC microcontroller. The supported devices depend on the current version of ICPROG software. Dimensions 50x30 mm (1.95x1.2") + 30 cm (12") cable DOCUMENTS: PIC-PG1.pdf - Users manual PIC-PG1 tutorial NOTE: The programmer may not work with low power serial interfaces - i.e. laptop or notebook serial ports. USB to serial cables have also not been proven to work. HARDWARE: PIC-PG1 schematic PIC ICSP connector SOFTWARE: ICPROG from Bonny Gijzen is the best software for serial ports programmers we ever know. And it's FREE! WinPIC - Great new software by Wolfgang "Wolf" Bnscher. Supports all the popular flash PICs, as well as many of the newly released PICs! Use this software for support for the 16F628A, 16F87, and 16F88. WinPIC in Japanese version. Peronally I prefer the WinPIC, because You are able to define Yr. own PIC:s in a device.INI instead of defined in PIC hardware. And it's also free. Cheers robban
|
|
|
Logged
|
Code Warrior
|
|
|
robban
Senior Member
Offline
Posts: 265
Thank You
-Given: 34
-Receive: 38
Warrior
|
|
« Reply #24 on: November 09, 2007, 12:44:21 12:44 » |
|
|
|
|
Logged
|
Code Warrior
|
|
|
|