|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||||
|
||||||
|
RoboEmu2(code simulator)--now with C!
Well, its only been a year since I said I was going to do this, but hey, better late than never, right?
Anyways, it's finally here (in at least pre-beta form): RoboEmu2 -- now with C! I've tested it with the default code and everything seems to work fine, but given that I haven't been involved with a team for 2 years now, that's about the only code I've tested it with. Thus, as always, I'm asking for everybody's help: please download RoboEmu2 and try it with your code. If it doesn't work, please email me your code and any warnings/errors you get. In any event: enjoy, comment, criticize, etc: www.robbayer.com/re2.shtml Edit: for those of you who don't know, RoboEmu is an emulator for the control system. Back in the days of PBASIC it was used as a way to quickly test new code and algorithms without needing an actual robot to play with. This new version marks the transition from PBASIC to C, thus supporting the new controllers. Last edited by rbayer : 21-11-2004 at 14:38. |
|
#2
|
|||
|
|||
|
Re: RoboEmu2(code simulator)--now with C!
Ert, i get the error "Failed to start because QTMTNC321.DLL was not found"
I googled the dll and couldnt find it anywhere. |
|
#3
|
|||||
|
|||||
|
Re: RoboEmu2(code simulator)--now with C!
Quote:
|
|
#4
|
||||
|
||||
|
Re: RoboEmu2(code simulator)--now with C!
Quote:
fficialAppears to be some library that is part of "Qt" which sounds like a tool that you might have used to compile this program. Last edited by Max Lobovsky : 21-11-2004 at 15:29. |
|
#5
|
|||||
|
|||||
|
Re: RoboEmu2(code simulator)--now with C!
I compiled it from source on Fedora Core 3 against whatever version of kdelibs-devel (read: qt-devel) I happen to have, and it works just fine with the default code provided in the tarball.
When I get a moment or two, I'll make the necessary changes to our existing code and see what happens then. Last edited by nathanielreindl : 21-11-2004 at 15:51. |
|
#6
|
||||||
|
||||||
|
Re: RoboEmu2(code simulator)--now with C!
My bad... new version now uploaded. Grab it from the website.
-Rob |
|
#7
|
||||
|
||||
|
Re: RoboEmu2(code simulator)--now with C!
MiniGW doesn't understand the "short long" type that C18 accepts (24 bit signed integer). I will use long's temporarily, but I wonder if you could add something to the batch file that will convert types because incorrect variable sizes can definitley screw up code.
Last edited by Max Lobovsky : 21-11-2004 at 17:28. |
|
#8
|
||||
|
||||
|
Re: RoboEmu2(code simulator)--now with C!
Quote:
|
|
#9
|
||||
|
||||
|
Re: RoboEmu2(code simulator)--now with C!
cool stuff....
|
|
#10
|
|||
|
|||
|
Re: RoboEmu2(code simulator)--now with C!
What kind of magic is behind this, namely how does it work?
|
|
#11
|
||||
|
||||
|
Re: RoboEmu2(code simulator)--now with C!
Quote:
Last edited by Rickertsen2 : 01-12-2004 at 20:36. |
|
#12
|
|||||
|
|||||
|
Re: RoboEmu2(code simulator)--now with C!
I get the errors
Code:
C:\mcc18\EduCode>C:\mingw\bin\mingw32-make.exe re2_win gcc -o recore.dll -D_ROBOEMU -shared user_routines.c user_routines_fast.c re_hac k.c re_core.c In file included from user_routines.c:18: printf_lib.h:15: warning: conflicting types for built-in function `printf' user_routines.c: In function `User_Initialization': user_routines.c:84: `TRISAbits' undeclared (first use in this function) user_routines.c:84: (Each undeclared identifier is reported only once user_routines.c:84: for each function it appears in.) user_routines.c:96: `ADC_2ANA' undeclared (first use in this function) user_routines.c:102: `TRISFbits' undeclared (first use in this function) user_routines.c:111: `LATAbits' undeclared (first use in this function) user_routines.c:112: `LATFbits' undeclared (first use in this function) user_routines.c:113: `LATHbits' undeclared (first use in this function) re_core.c: In function `update_outputs': re_core.c:35: `pwm09' undeclared (first use in this function) re_core.c:35: (Each undeclared identifier is reported only once re_core.c:35: for each function it appears in.) re_core.c:36: `pwm10' undeclared (first use in this function) re_core.c:37: `pwm11' undeclared (first use in this function) re_core.c:38: `pwm12' undeclared (first use in this function) re_core.c:39: `pwm13' undeclared (first use in this function) re_core.c:40: `pwm14' undeclared (first use in this function) re_core.c:41: `pwm15' undeclared (first use in this function) re_core.c:42: `pwm16' undeclared (first use in this function) re_core.c:44: `relay1_fwd' undeclared (first use in this function) re_core.c:45: `relay1_rev' undeclared (first use in this function) re_core.c:46: `relay2_fwd' undeclared (first use in this function) re_core.c:47: `relay2_rev' undeclared (first use in this function) re_core.c:48: `relay3_fwd' undeclared (first use in this function) re_core.c:49: `relay3_rev' undeclared (first use in this function) re_core.c:50: `relay4_fwd' undeclared (first use in this function) re_core.c:51: `relay4_rev' undeclared (first use in this function) re_core.c:52: `relay5_fwd' undeclared (first use in this function) re_core.c:53: `relay5_rev' undeclared (first use in this function) re_core.c:54: `relay6_fwd' undeclared (first use in this function) re_core.c:55: `relay6_rev' undeclared (first use in this function) re_core.c:56: `relay7_fwd' undeclared (first use in this function) re_core.c:57: `relay7_rev' undeclared (first use in this function) re_core.c:58: `relay8_fwd' undeclared (first use in this function) re_core.c:59: `relay8_rev' undeclared (first use in this function) re_core.c: In function `update_inputs': re_core.c:77: `p1_x' undeclared (first use in this function) re_core.c:78: `p1_y' undeclared (first use in this function) re_core.c:79: `p1_wheel' undeclared (first use in this function) re_core.c:80: `p1_aux' undeclared (first use in this function) re_core.c:81: `p1_sw_trig' undeclared (first use in this function) re_core.c:82: `p1_sw_top' undeclared (first use in this function) re_core.c:83: `p1_sw_aux1' undeclared (first use in this function) re_core.c:84: `p1_sw_aux2' undeclared (first use in this function) re_core.c:85: `p2_x' undeclared (first use in this function) re_core.c:86: `p2_y' undeclared (first use in this function) re_core.c:87: `p2_wheel' undeclared (first use in this function) re_core.c:88: `p2_aux' undeclared (first use in this function) re_core.c:89: `p2_sw_trig' undeclared (first use in this function) re_core.c:90: `p2_sw_top' undeclared (first use in this function) re_core.c:91: `p2_sw_aux1' undeclared (first use in this function) re_core.c:92: `p2_sw_aux2' undeclared (first use in this function) re_core.c:93: `p3_x' undeclared (first use in this function) re_core.c:94: `p3_y' undeclared (first use in this function) re_core.c:95: `p3_wheel' undeclared (first use in this function) re_core.c:96: `p3_aux' undeclared (first use in this function) re_core.c:97: `p3_sw_trig' undeclared (first use in this function) re_core.c:98: `p3_sw_top' undeclared (first use in this function) re_core.c:99: `p3_sw_aux1' undeclared (first use in this function) re_core.c:100: `p3_sw_aux2' undeclared (first use in this function) re_core.c:101: `p4_x' undeclared (first use in this function) re_core.c:102: `p4_y' undeclared (first use in this function) re_core.c:103: `p4_wheel' undeclared (first use in this function) re_core.c:104: `p4_aux' undeclared (first use in this function) re_core.c:105: `p4_sw_trig' undeclared (first use in this function) re_core.c:106: `p4_sw_top' undeclared (first use in this function) re_core.c:107: `p4_sw_aux1' undeclared (first use in this function) re_core.c:108: `p4_sw_aux2' undeclared (first use in this function) re_core.c:110: `PORTAbits' undeclared (first use in this function) re_core.c:115: `PORTFbits' undeclared (first use in this function) re_core.c:126: `rc_dig_in17' undeclared (first use in this function) re_core.c:127: `rc_dig_in18' undeclared (first use in this function) re_core.c:133: `competition_mode' undeclared (first use in this function) C:\mingw\bin\mingw32-make.exe: *** [re2_win] Error 1 C:\mcc18\EduCode>pause Press any key to continue . . . Last edited by Mike : 05-12-2004 at 19:08. |
|
#13
|
||||||
|
||||||
|
Re: RoboEmu2(code simulator)--now with C!
Quote:
If that doesn't work, send me an email with your user_routines.c and I'll try to see what's wrong. -Rob |
|
#14
|
||||||
|
||||||
|
Re: RoboEmu2(code simulator)--now with C!
Quote:
As for how this thing works, it's actually quite simple. You compile your code into native Windows/Linux/etc as a dynamically loadable module (DLL's in Windows speak). This library file contains a few RE2-specific functions (from recore.c) that the main program uses to interface with your code. The driver program simply calls these functions once ever 26ms (for the slow-loop function) or whenever your computer has free cycles (for the fast-loop function). The majority of the work here is being done by gcc, so anything that's ANSI-C should compile. Whether or not it works as expected depends on whether you're using a PIC-specific feature (timers, interrupts, etc). -Rob |
|
#15
|
|||
|
|||
|
Re: RoboEmu2(code simulator)--now with C!
wow, that was awesome, thanks a lot
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|