Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About babos

  • Rank
  • Birthday 05/13/1960

Profile Information

  • Gender
  • Location
  1. I've already try to complie the same project in SourceBoost IDE but remain the same error.(not in laptop but in the desktop computer where I've copy the project) Tomorrow I can try the second step. Cheer. Babos
  2. I had try to compile the same project in Sourceboost IDE & MPlab ver.8.50/8.53/8.56 and this is the error in the same case: BoostC++ Optimizing C++ Compiler Version 6.97 (for PIC18 architecture)http://www.sourceboost.comCopyright© 2004-2010 Pavel BaranovCopyright© 2004-2010 David HobdayLicensed to Massimo Romano under Single user Pro License for 1 node(s)Limitations: PIC18 max code size:Unlimited, max RAM banks:Unlimitedmcu.cStarting preprocessor: "C:\Program Files\SourceBoost\pp.exe" "E:\PRETTY FW MCU\mcu.c" -i "C:\Program Files\SourceBoost\include" -d _PIC18F8722 -la -c2 -o "E:\PRETTY FW MCU\mcu.pp" -v -d _BOOSTC -d _BOOSTCPP -d _PIC18 -d _CHAR_INDEX mcu.c successsuccessExecuting: "C:\Program Files\SourceBoost\boostlink_pic.exe" "E:\PRETTY FW MCU\mcu.obj" "E:\PRETTY FW MCU\lib\novolib_pic18t5e2ts2.lib" "E:\PRETTY FW MCU\lib\eeprom.pic18.lib" -O1 -v -p "MCU_00" -t 18F8722 -swcsBoostLink Optimizing Linker Version 6.97http://www.sourceboost.comCopyright© 2004-2010 Pavel BaranovCopyright© 2004-2010 David HobdayOptimisation level:1 Bytes:0x00 0x00 0x04 0x03 0x00 0x1A 0x00 0x00 0x00 0x2D 0x00 0x43 0x3A 0x5C 0x50 0x72 0x6F 0x67 0x72 0x61 0x6D 0x20 0x46 0x69 0x6C 0x65 0x73 0x5C 0x53 0x6F 0x75 0x72 .obj file error:Expected FILE_SECTION failureBUILD SUCCEEDED: Tue Sep 28 05:03:41 2010 the strange is that with my laptop and with the same installed programs, the linker work fine without error. Same setting, same project(s). What I Can do. please? Best regards to all Babos
  3. I've 6.96 C++ compiler version. Isn't the Last ? Where is version 7? regards. Babos
  4. Hello, I've this problem. i should make an array of integer of 1600 int as "static unsigned int buffer_sample[1600].having 3600 bytes of free RAM RAM available:3936 bytes, used:335 bytes (8.6%), free:3601 bytes (91.4%), Heap size:3601 bytes, Heap max single alloc:127 bytesROM available:131072 bytes, used:4688 bytes (3.6%), free:126384 bytes (96.4%) This message appear when I implement the array into the code with suggested "-idx 2" switch : warning: unrecognized command line agrument '-idx', skippedsrtos.c Starting preprocessor: "C:\Program Files\SourceBoost\pp.exe" E:\G26CPP\G26RTOS\ScanBoard\srtos.c -i "C:\Program Files\SourceBoost\include" -d _PIC18F8722 -la -c2 -o E:\G26CPP\G26RTOS\ScanBoard\srtos.pp -v -d _BOOSTC -d _BOOSTCPP -d _PIC18 -d _CHAR_INDEX E:\G26CPP\G26RTOS\ScanBoard\srtos.c(66): error: total number of array elements can not exceed 0x100 (use -idx 2 compiler command line argument to remove this restriction)srtos.c success what is the switch "-idx 2", why not working? Thank's Babos
  5. thank's Ian, very useful to know. Babos
  6. Good mornig everyone. Is a way to calculate how much availability Sys_Yiels / Sys_Sleep I have, Before compiler message "Can't fit Avoid boundary code in function .... "? thanks. Babos
  7. Possibly. However I will have to write it all from a blank sheet to a finished, built and tested program if I am to be certain it works. I am not charging for my time (nor would I want to) so the example project must interest, entertain and educate me or I will not do it. I am away for a few days and if I can think of an idea I like that needs this level of complexity, I will start work on it, but no promises. To modify your code you have shown us to make an example would be non trivial and I would not be able to run it without either the rest of the project and its hardware or a software test harness controlled by a script on a PC. I do not like posting bad code here, and I would not like to spend hours working on code I couldn't test. If I may tell you a little story, you may understand me better: Many years ago, just out of University, I was given a contract to rewrite a PC based medical instrument display. After some weeks I came to the conclusion that salvaging the display routine was impossible in the time available and I would need to rewrite it. It had to scroll a trace smoothly while displaying various cursor lines and timing marks on it. 8 weeks in, I had a prototype I was happy with and my boss took the demo to his boss. Unfortunately I was developing on a 286 PC with Hercules Mono graphics and the head of department had a 386 with an EGA card that his secretary used for word-processing and he only used to play cards on at lunchtime. I had auto detected the graphics correctly and my demo ran on the EGA, but it was compiled for a 286 and with three colour bit planes to scroll, it couldn't keep up, and worse, the graphics library did not interleave the scrolling, but scrolled R then G then B. The result was a rainbow coloured mush on the screen instead of a nice sharp trace and an error after a few seconds when my code detected it could not maintain a realtime display. The head of department was NOT happy. About a fortnight later, I was ready for another demo. My boss had given me access after hours to his machine for testing and I had built seperate 286 and 386 versions. All worked well, scrolled smoothly and kept up with realtime. My boss said 'I like the green trace." and I replied "Yes, it looks better than red or blue.". He asked me why red or blue and I explained that I could only scroll ONE colour smoothly in the time available :-). The horizontal cursors could be multicoloured as they did not have to scroll but all moving time marks had to be dotted green . . . The boss couldn't stop laughing. We took it to the head of department and the demo was successful. Our team went to the bar afterwards and I spent the last couple of weeks tidying up the documentation and packaging the code for the research team to hook up to. That was two weeks of 16 to 18 hour days of coding grief just because the secretary had a better PC than the programmer or any of the engineers. Afterwards, it took about a month for my health to recover and I vowed I'd never take another contract that was mainly software development. I have a couple of personal projects I have been putting off all summer with the intention of doing them this winter. One is generating a compensated pulse train from a sensor that is non-linear. It will involve sampling the incoming pulse and generating the same waveform at a different frequency with the ratio adjusted slightly by number of other external factors AND a correction derived from the period of the original waveform. Owing to the speed of the pulse train, this is going to be interrupt driven hard realtime stuff possibly with external hardware assistance for the waveform generation. The other is instrumentation, fault monitoring and data logging for an engine. It will probably fit fairly well with NOVO in a 16F887 or maybe I'll have to go PIC18. I don't think it will have anywhere near the complexity of your project even if I put in all the performance monitoring and data collection I can think of. If I wanted to add a realtime PC USB interface, it *might* come close, but I think I'd be more likely to break it up into separate logger and measurement / UI processors communicating serially and a RS232 link to the PC. I also have a lot of database and web stuff to do for work and as a volunteer Please don't wait for me to come up with an example. If I start work on something that uses the technique I suggested I will send you a PM. Meanwhile, best wishes and good luck . . . Yours Sincerely Ian M.
  8. In which case it would be unwise to discuss it in more detail or show any more of it to anyone unless you have them under contract with a signed non-disclosure agreement. Before you do that, you would of course need to see that they had done a realtime project of a similar size to your own. I am just a hobby user and am NOT the right person if you need someone under contract. You might be able to tell us how many lines of code you have, the number of Sys_xxxxx functions your code has in total, and maybe show us the call tree annotated with the number of bytes of variables and yield points per function without compromising confidentiality. That might give one of the experts here enough information to tell you if your project is too big for NOVO on a PIC18F8722. Finally have you built a custom version of NOVO yet? If not, I presume you are using 'novolib_pic18t6e4ts2.lib' which supports 4 events (semaphores). I understand you are not yet using semaphores and if you have fewer than 6 tasks as well, *maybe* you could save enough resources if you were to build, for example, 'novolib_pic18t5e2ts2.lib'. I am sorry I don't have any other suggestions to help you. Ian M.
  9. The biggest problem is that I can not speak well's English.I try to explain: * equipment has more groups: washing, serum application, drying, treatment tank, ecc. * The motors are used to move on accessories for various groups' analysis. * From computer via USB port sending the parameters that I need for a specific method * Send also (every 500ms) a request to state that allows me to display temperature, time in progression, etc. * Together with the parameters of methods, including sending the sequences of movements of the motors. * equipment is started and I could also disconnect the USB because the process can be completed alone, but I need to display as I explained the state. * Not only that, there are methods that require outside processing then, the machine is retired, the signals and allows you to restart the method after performing the external work manual. * The various groups of markers (flags) that alert you if they are busy. This is because I can send a 'parallel other analysis and sharing groups with different sequences. Maximum of two simultaneously. * If the second analysis, must use a group busy, waiting for free. * Like I said, the device functions as two years without major problems but uses superloop written PicBasicPro and most of the work is done during 'single Timer1 interrupt A typical flow for a single analysis could be this: 1) Send the parameters for analysis and the sequence of executing via USB. 2) the equipment send me an acoustic signal that advice me wich is in start. 3) The plotter X,Y,Z gets a support and move this in a washin tank for (es. 3 minutes) 4) During this time moves to do other tasks meanwhile sends me the state with the time spent washing, the temperatures of the liquid, etc. 5) Continues to support other groups of workers through the plotter. 6) If I wanted to send another way I could do it because the group was released after 3 minutes of washing. 7) ... ... I practically two buffers where to send the analysis parameters and sequences to be carried. 4 motors to move (one-way communication) command telling them where to go and at what speed. That's where the problem arises!!For example, I have to wait for X to finish the movement, before launching Y or Z, and use a pin that I got up to a high level when the engine started has finished processing the motion.During the waiting however, I still perform other tasks and this, with novo, I can not do. If I use while(busy_x_motor); other tasks are blocked waiting to exit the loop if I use while(busy_x_motor)Sys_Sleep(1); all work, but adding movements also group calls Sys_Sleep, the compiler will not let me because it exceeds its parameters.If it solves this problem , I solved everything. I hope that I explained sufficiently The mcu is PIC18F8722. isn't enoght?
  10. The problem remain. when I have few Sys_Sleep to wait an event as // motor move motor_move(_X,position,velocity); // wait end of movement for motor X while(!x_busy)Sys_Sleep(1); During this wait, the processor send his status to serial port, fill the treatment tank, decrement any elapsed time for process. I can't block these flows All work fine but not is possible increment Sys_Sleep infinity and, in my program, there are many calls to the motors. we need an alternative to handle this problem, use other tasks, use semaphores or some other devilish otherwise be forced to return to superloop and I would not. I need a council resolution, and I thank those who cooperated and who gives me any other one. Babos
  11. Yes you mentioned you had it working in Basic as a superloop. *HOW* does the PIC report to the computer? It *may* be possible to put the reporting in an interrupt routine and avoid the need for NOVO at all! What's the interface and the message format? pic transmint a status of 64 byte @115200b/s any 250/500ms
  12. in fact I can avoid Sys_Sleep engines, waiting to do their movements and with a simple "while (! motor_busy);" but the computer requires the machine status every 500ms;during which I was lacking.
  • Create New...