From: george j. <az....@gm...> - 2006-12-16 10:16:13
|
now i am using sdcc for programming pic16f84a.i want to know from where i get the built in functions(functions for reading data from a port and writing to a port ,delay etc) in sdcc (means documentation of all the functions) and also some sample programs for pic16f84 |
From: Raphael N. <rn...@we...> - 2006-12-16 12:01:42
|
Hi George, > now i am using sdcc for programming pic16f84a.i want to know from > where i get the built in functions(functions for reading data from a > port and writing to a port ,delay etc) in sdcc (means documentation > of all the functions) and also some sample programs for pic16f84 The pic14 library is close to non-existent, there are nearly no built-in functions available from the SDCC/pic14 distribution alone. You may try to use library sources from the device/lib tree, but for your needs, you will just have to write your own routines: output to a port should be a mere PORTA=0x42; input similarly via char c; c = PORTA; Delay routines will probably better be written in pure or inline assembly similar to #include <pic14regs.h> #define NOP _asm nop _endasm void delay_ms(unsigned ms) { unsigned j; // unsigned char might suffice? while (ms--) { for (j=0x42; j; j--) { NOP: } } } with 0x42 being replaced by a saner value, depending on the length of the inner loop (number of instructions) and frequency of your device. There might also be some code floating around on the web, but I have no clue about that. Other may be able to help you out. -- Regards, Raphael Neider |
From: Peter C. <pe...@pe...> - 2006-12-16 14:39:07
|
On Saturday 16 December 2006 12:01, Raphael Neider wrote: > The pic14 library is close to non-existent, there are nearly no built-in > functions available from the SDCC/pic14 distribution alone. > You may try to use library sources from the device/lib tree, but for > your needs, you will just have to write your own routines: output to a > port should be a mere I'm happy to share my limited serial routines (software, not using inbuilt hardware, so probally useful on pic16f84), vt100 library - not necessarily good portable code so ymmv. Unfortunately I've not made anywhere near a good substitute for printf - which would be a useful addition. Pete |
From: Marius K. <ki...@si...> - 2006-12-16 17:53:42
|
Hi, Try http://reprap.org. They have some pic14 library routines in their firmware code, licensed under LGPL AFAIK. I've been thinking about writing up some library code for pic14, but right now I'm only using pic16, so It's currently on the shelf.. ~/= Marius -- We are Elektropeople for a better living. |
From: george j. <az....@gm...> - 2006-12-19 06:50:34
|
hai i am using sdcc for programing pic16f84a .i am fresher in sdcc .now i had aproblem .i want to read data from a single pin in the porta and also i want to sent other pin as output(pa0 as input and pa1-pa3 as output).plz send me a code to do this ,help me in solving this problem. |
From: Raphael N. <rn...@we...> - 2006-12-20 09:17:40
|
Hi, > i am using sdcc for programing pic16f84a .i am fresher in > sdcc .now i had aproblem .i want to read data from a single pin in the > porta and also i want to sent other pin as output(pa0 as input and > pa1-pa3 as output).plz send me a code to do this ,help me in solving > this problem. Ever bothered to skim through include/pic/pic16f84a.h and/or the pic16f84a datasheet? <code name="ports.c"> #include <pic14regs.h> // may also use pic16f84a.h directly typedef unsigned char u8; u8 foo(u8 val) { TRISA = 0x01; // RA0 is input, RA1-RA4 are outputs PORTA = val; RA1 = 1; RA2 = 0; return (RA0): } </code> sdcc -mpic14 -p16f84a -c ports.c Regards, Raphael |
From: george j. <az....@gm...> - 2006-12-20 10:53:54
|
Thanks for the replay I try the program but i get an error that the RA1 And RA2 are not defined.Iinclude the header files #include < pic14regs.h> and also #include"pic/pic16f84.h" i got an error the error is Undefined identifier 'RA1'.i am usind sdcc and os is linux debian h On 12/20/06, Raphael Neider <rn...@we...> wrote: > > Hi, > > > i am using sdcc for programing pic16f84a .i am fresher in > > sdcc .now i had aproblem .i want to read data from a single pin in the > > porta and also i want to sent other pin as output(pa0 as input and > > pa1-pa3 as output).plz send me a code to do this ,help me in solving > > this problem. > > Ever bothered to skim through include/pic/pic16f84a.h and/or the > pic16f84a datasheet? > > <code name="ports.c"> > #include <pic14regs.h> // may also use pic16f84a.h directly > > typedef unsigned char u8; > > u8 foo(u8 val) { > TRISA = 0x01; // RA0 is input, RA1-RA4 are outputs > PORTA = val; > RA1 = 1; > RA2 = 0; > return (RA0): > } > </code> > > sdcc -mpic14 -p16f84a -c ports.c > > Regards, > Raphael > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > |
From: Raphael N. <rn...@we...> - 2006-12-20 11:34:34
|
> I try the program but i get an error that the RA1 And RA2 are not > defined.I include the header files #include <pic14regs.h> and also > #include"pic/pic16f84.h" i got an error the error is Undefined > identifier 'RA1'.i am usind sdcc and os is linux debian h You might be using an old version of SDCC (probably the 2.6.0 release). Please upgrade using one of the nightly snapshots from http://sdcc.sourceforge.net/snap.php or the svn directly, any revision later than r4400 should do. Check which version you have via sdcc -v: If it says #4400 or higher, the above diagnose is probably wrong and I need to think about other possible errors. Regards, Raphael BTW: Code compiles nicely for my setup using SDCC 2.6.2 #4519. |
From: george j. <az....@gm...> - 2007-01-01 06:29:37
|
now it is working thanks for the help .Now i want to know from where i get a good documentation of sdcc .in the program sent to me contains these lines. RA1 = 1; RA2 = 0; i want to know from where you get the data that this type of declaration is possable in sdcc will you plz send me that link .help me On 12/20/06, Raphael Neider <rn...@we...> wrote: > > > I try the program but i get an error that the RA1 And RA2 are not > > defined.I include the header files #include <pic14regs.h> and also > > #include"pic/pic16f84.h" i got an error the error is Undefined > > identifier 'RA1'.i am usind sdcc and os is linux debian h > > You might be using an old version of SDCC (probably the 2.6.0 release). > Please upgrade using one of the nightly snapshots from > http://sdcc.sourceforge.net/snap.php or the svn directly, any revision > later than r4400 should do. > Check which version you have via sdcc -v: If it says #4400 or higher, > the above diagnose is probably wrong and I need to think about other > possible errors. > > Regards, > Raphael > > BTW: Code compiles nicely for my setup using SDCC 2.6.2 #4519. > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > |
From: george j. <az....@gm...> - 2007-01-10 09:56:02
|
i was not able to generate the hex code i compile the program using the command sdcc -mpic14 -p16f84a -c example.c.but i have n't get the hex code .plz tell me how i can get the hex code On 12/20/06, Raphael Neider <rn...@we...> wrote: > > Hi, > > > i am using sdcc for programing pic16f84a .i am fresher in > > sdcc .now i had aproblem .i want to read data from a single pin in the > > porta and also i want to sent other pin as output(pa0 as input and > > pa1-pa3 as output).plz send me a code to do this ,help me in solving > > this problem. > > Ever bothered to skim through include/pic/pic16f84a.h and/or the > pic16f84a datasheet? > > <code name="ports.c"> > #include <pic14regs.h> // may also use pic16f84a.h directly > > typedef unsigned char u8; > > u8 foo(u8 val) { > TRISA = 0x01; // RA0 is input, RA1-RA4 are outputs > PORTA = val; > RA1 = 1; > RA2 = 0; > return (RA0): > } > </code> > > sdcc -mpic14 -p16f84a -c ports.c > > Regards, > Raphael > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > |
From: Raphael N. <rn...@we...> - 2007-01-10 11:28:21
|
Hi George, > i was not able to generate the hex code i compile the program using > the command sdcc -mpic14 -p16f84a -c example.c.but i have n't get the > hex code. Does this really surprise you? The help text for the -c flag reads -c --compile-only Compile and assemble, but do not link ^!!!!!!!!!^ The .hex file is the result of linking your project's object files with the sdcc (and maybe other) libraries, so not linking will only produce 'example.o' but not 'example.hex'. > plz tell me how i can get the hex code The sample code I provided does intentionally not have a main() function, nor does the code make anything useful besides demonstrating IO port access. Thus to obtain a hex file you would need to add a main() function with useful functionality either in example.c or in another source.c, compile both with sdcc -mpic14 -p16f84a -c example.c sdcc -mpic14 -p16f84a -c source.c and then link them together (and with the libraries) using gplink example.o source.o libsdcc.lib pic16f84a.lib (alternatively, you should be able to use the slightly simpler sequence sdcc -mpic14 -p16f84a -c example.c sdcc -mpic14 -p16f84a source.c example.o BUT make sure to specify the source file containing main() in the last call and compile ALL other project source files with the -c option!) Good luck, Raphael |