Recent activity
Subscribe to this feed
p.alex replied on November 11, 2009 12:45 to the question "DS1206 - I/O Parameters" in Tibbo:
p.alex replied on September 30, 2009 14:27 to the problem "EM1000 isnt so fast!!! Too slow" in Tibbo:
Hello, Leandro!
I had that same problem too.
The sad fact is: the EM1000 doesn't run its code directly, all instructions have to decoded and executed by a Virtual Machine. This way, the system becomes more stable and controlable. The Vm takes care of all the details regarding sockets (sock), wireless (wln), serial ports (ser), etc, so programming becames much easier.
The disadvantage is that simpler instructions may take 1 to 2 orders of magnitude more time to execute, ie, 10 to 100 times slower!!!
More complex instructions, such as the ones regarding the sockets, take only a little more time to execute, no problem there.
The PIC executes its code directly, so a typical instruction in a 8-bit PIC @8MHz takes only 0.5us! Much less than the 186us you reported...
It's not a defect, it's a feature, with its pros and cons :-)
Sugestion: why not use an EM1000 and a PIC? The EM1000 takes care of the high-level processing (eg: Ethernet), the PIC takes care of the simplest but fastest signal processing (eg: pulse counting). These two together make a very powerful system! Think about it.
Good luck :-)
PS: A few years ago I had to count pulses from a motor encoder, with a PIC16F628. Running at 1400rpm, the pulses arrived to the PIC at 26KHz!!! The PIC handled it perfectly, running @4MHz from its internal crystal and consuming only about 50% of the available time - in a word, perfect!
p.alex asked a question in Tibbo on September 25, 2009 15:20:
Remote Software Upload for EM1000/1202My problem is the following:
I want to design stand-alone terminals, using an EM1000 (or EM1202) module.
The terminals will be installed in remote locations, connecting to a central server using GPRS. For that purpose, each terminal has a GPRS module connected to one of the serial ports.
I've been told that, when a GPRS connection is established, the terminal appears in the server's network, as if it were directly connected through Ethernet. Devices can then exchange data packets (either TCP or UDP) over IP.
In those conditions, can I connect another PC to the local network and upgrade the terminal's software remotely?
If not, I'll have to choose another platform, remote software upload is mandatory!!!
p.alex replied on September 07, 2009 09:10 to the problem "TIDE Linker ridiculous slow!!!" in Tibbo:
p.alex replied on September 01, 2009 11:31 to the problem "TIDE Linker ridiculous slow!!!" in Tibbo:
Just one more hint:
1- When TIDE is (slooowly) linking, I exit TIDE
2- Then I press Ctrl-Alt-Del to enter Windows Task Manager
3- In the process list, "tlink.exe" is still running, using all available CPU time! CPU usage peaks at 100%
4- I click on "tlink.exe" and end the process: everything turns to normal! CPU usage returns to 5-10%
Is this normal???
p.alex replied on September 01, 2009 11:22 to the problem "TIDE Linker ridiculous slow!!!" in Tibbo:
Thanks, T-bone.
1- I downloaded the new version of TIDE, 2.20.1 and installed it.
2- Then I rebuild the whole project - compile times were normal, 1-2 seconds each file.
3- Unfortunately, link time remains ULTRA-SLOW, about 4-5 minutes (and growing...). FYI, application size= 181KB, stack size= 60 bytes
There must be a solution to this issue, today I had to fix a few bugs and each time I rebuilt I had to wait 5 minutes, instead of seconds!!! This is really annoying :-(
p.alex reported a problem in Tibbo on August 31, 2009 13:26:
TIDE Linker ridiculous slow!!!My recent project includes several source files and lots of functions(!).
- Recently, as more funcions were added, the link time grew from a few (5-10) seconds to a ridiculous >10 minutes!!! Application size= 160KB, stack size= 54 bytes (aprox values)
- The solution was to replace funcion/sub calls with the code itself!!! The application file size grew a lot, but I managed to reduce the link time to 10-20 seconds.
- Is this caused by the growing call stack? I noticed the link time grew enormously when the stack space grew over 50 bytes.
- Last week, more functions were added (application file size= 171KB, stack size= 60 bytes) and the link time grew to 4 minutes - my CPU is a Pentium DualCore at 3 GHz, not a rather fast machine, IMHO.
- Just for the record, the project I developed before this one, has application file size= 68KB, stack size= 48 bytes and takes 1 second to link!
Now, what seems to be the problem with tlink.exe???
(TIDE version is 2.9.21beta, Jul 22 2009)
Hello, Tibbo people? Any answers?
p.alex replied on July 23, 2009 15:09 to the problem "TIDE - INTERNAL COMPILER ERROR" in Tibbo:
Hi Ezuk,
Thanks for the bug fix - it worked, so it seems. I uncommented the error causing lines and no error happened :)
However, you still haven't answered my questions about TIDE's limits - number of variables, number/size of types, sub/functions call depth, etc :(
I think that could be helpful - TIDE has such limits, hasn't it??? Or TIDE's perfomance is just limited by available RAM?
Thanks for the bugfix. Just one issue - the long linking times still remain, current version of our application takes 20 seconds to link. TIDE reports:
-> Application file size: 157824 bytes
-> Required variable memory (RAM) size: 10114 bytes
-> Stack size: 48 bytes
Is this time normal? Are executing too many nested sub/function calls?
*** Just among us, what was causing the "Internal Compiler Error"? I promise not to tell anyone... ***
Thanks.
p.alex replied on July 21, 2009 11:14 to the problem "TIDE - INTERNAL COMPILER ERROR" in Tibbo:
One more clue:
My application calls this function once only. So, I commented the call and I copied the whole function code to the place where the call took place.
The result? It worked Ok - the application still has its own bugs, but TIDE compiled and linked everything perfectly.
Can this help?
Just a few more questions:
1- Is there a limit to the number of Functions, Subs, Types (structures), Variables, Arrays, Constants, etc, one can declare in a whole project - all modules and include files included? TIDE's manual doesn't mention these.
2- Is there a limit to the number of variables a Type can contain? idem
3- Is there a limit to the number of nested calls the program can execute? idem
4- In this same application we had a problem when the application grew - more or less at application size= 100KBytes and Stack size > 50 bytes - the linking time grew to more than 10 MINUTES!!! We had to duplicate code to avoid more levels of function/sub calls - a terrible way of coding!!! The linking time now is 20 seconds - not very good, but a lot better than 10 minutes! Smaller applications I developped link in almost no time - 1, 2 seconds maybe.
That's all.
p.alex replied on July 21, 2009 09:57 to the problem "TIDE - INTERNAL COMPILER ERROR" in Tibbo:
Dear Ezuk,
Here's the offending portion of code, I marked the line with "-->"
(of course I remove that mark before compiling!)
...
Function OpenSky2_StrToCounters( CountersStr as string(sizeof(TOpenSky2_Counters)), byref CountData as TOpenSky2_Counters ) as ok_ng
dim i as byte
if len(CountersStr) <> sizeof(TOpenSky2_Counters) then
OpenSky2_StrToCounters = NG
exit function
end if
CountData.CardCap = asc4(left(CountersStr, 4))
CountData.CardIss = asc4(mid(CountersStr, 5,4))
CountData.CardLoad = asc4(mid(CountersStr, 9,4))
CountData.CardRej = asc4(mid(CountersStr, 13,4))
CountData.CardRet = asc4(mid(CountersStr, 17,4))
CountData.Receipts = asc4(mid(CountersStr, 21,4))
CountData.VouchCnt = asc4(mid(CountersStr, 25,4))
CountData.VouchVal = asc4(mid(CountersStr, 29,4))
for i= 0 to BILL_TYPES-1
--> CountData.BillStacker(1)= asc2(mid(CountersStr, i*2+33, 2))
next i
OpenSky2_StrToCounters = OK
end function
...
Notes:
* when compiling, the compiler crashes with the message "Internal Compiler Error"
* no linking took place
* when I comment the marked line, everything compiles and links perfectly
* FYI, this function extracts data from a string into a structure - a simple task
* asc4() is similar to asc() but works with a 4-char string - fully tested
* sizeof() seems to be an undocumented Taiko function - we discovered it in the latest version of TIDE, works Ok
* just to be on the safe side, we replaced sizeof(...) with 42 - the actual size of the structure - same result
* TOpenSky2_Counters is a structure, as follows:
type TOpenSky2_Counters
BillStacker(BILL_TYPES+1) as word
CardIss as dword
CardRet as dword
CardCap as dword
CardRej as dword
CardLoad as dword
Receipts as dword
VouchCnt as dword
VouchVal as dword
end type
* BILL_TYPES equals 4, I replaced BILL_TYPES+1 with 5, same result.
* I tried moving the offending line to the top of the function, same result
* A similar piece of code, placed in another module, produces no error.
Of course this is a very small piece of a large project, envolving a few modules and libraries currently, the size of the compiled binary is 154880 bytes - pretty good.
See what you can do with these clues.
Thank you.
p.alex reported a problem in Tibbo on July 20, 2009 17:04:
TIDE - INTERNAL COMPILER ERROR*** THIS IS SERIOUS ***
My most recent project has grown to more than 150KB. today, after a few changes, I pressed F7 to rebuild and TIDE reported: "Internal Compiler Error". Just that.
I know that someone will suggest me to send the source files to Tibbo, so someone can check what may be causing the problem...however, like TIBBO, I too want to protect my intelectual property! Needless to say, my source files won't leave my computer.
I think it would be much better if the compiler could identify the problem, giving a proper error message - the current one is useless, ok, it warns us that something is not right: what???
And so my project has come to a sudden halt...
I'll try to reload my previous files, so I can recompile, then I'll try to check what caused the problem...
It won't be easy, and TIDE's error message doesn't help: "Guess what: Internal Compiler Error! eh eh eh"
Sincerely, I'm very worried.
p.alex asked a question in Tibbo on April 30, 2009 11:50:
Future plans for an USB port on the EM1000?Is there any plans to include an USB interface in the EM1000?
(USB support is one of the few things missing in the EM1000)
p.alex replied on April 30, 2009 11:44 to the idea "New Tibbo BASIC Projects" in Tibbo:
Very nice indeed :)
And the fact you used 'pre-cooked' libraries is very interesting, it means we can make it too. i'll give it a look, thanks!
I think other users will be interested in a quick and dirty browser interface, for easy device setup and configuration. Like someone said, the browser is the UI of the future!-
p.alex started following the question "SD or MMC card?" in Tibbo.
p.alex replied on January 07, 2009 14:35 to the question "Loading/defining EEPROM when uploading application" in Tibbo:
Hello! I had that problem before. The solution was to hard-code the parameters into the application itself - using a Resource Text File.
I inserted a 10-char string as a header for the parameters data. Every time I change version, I change the header to current date+time "YYMMDDhhmm".
When the application runs, it checks if it the parameters in EEPROM need updating or not: if the string in EEPROM is different, write the new string and file parameters into EEPROM, otherwise just read them.
It worked for me :)
p.alex reported a problem in Tibbo on January 07, 2009 12:12:
Line/Row numbers in new TIDE text editor don't update correctlyNew version (2.9.9a) of TIDE is OK, but there's a problem: in the text editor, when changing Line and/or Row, the numbers in the right lower corner don't update! I have to switch to another windows application and back to TIDE, then the numbers are correct. It's a little annoying :-(
(or is it a problem with my own PC/Windows/TIDE setup?)
p.alex asked a question in Tibbo on September 03, 2008 11:34:
How to Disassociate from a wireless network?I want to measure the signal strength reaching my device antenna, once every minute (for example). To do so, I must:
- disassociate from the network
- (re)scan
- (re)associate
- display the result (the RSSI value)
Here's the code:
for n= 1 to 10
res= wln.disassociate
while wln.task <> PL_WLN_TASK_IDLE
wend
if wln.associationstate= PL_WLN_NOT_ASSOCIATED then
exit for
end if
next n
for n= 1 to 3
res= wln.scan(WLAN_NAME)
if res= ACCEPTED then
exit for
end if
next n
if res= ACCEPTED then
while wln.task <> PL_WLN_TASK_IDLE
wend
wln.associate
while wln.task <> PL_WLN_TASK_IDLE
wend
lcd.print("RSSI= " + right("000" + str(wln.scanresultrssi), 3), 0, 24)
else
lcd.print("Scan Error", 0, 24)
end if
The program tries the disassociation 10 times, no result!
Because of this, no scan is possible :-(
Meanwhile, the program keeps receiving UDP packets from the wireless network, no problem!
I posted this to TIbbo support service, I'll post the answer(s).
Meanwhile, has anyone disassociated (successfully) from a wireless network?
Help required, please! Thanks in advance :-)
p.alex asked a question in Tibbo on July 24, 2008 15:36:
DS Manager: what is command "H"?When running the Device Manager application, it sends various commands.
What is the meaning/syntax/reply of the "H" command?
(all others are documented, this one isn't)
p.alex replied on July 24, 2008 08:54 to the question "Using the Flash memory on EM1000" in Tibbo:
Hi, everybody!
Here's a bonus to you: the FD object help file draft!
(not complete, but a very good advance):
Get it at http://robalo.net/files/fd_help.htm
Now my project is moving again... :)
p.alex replied on July 22, 2008 12:05 to the question "Using the Flash memory on EM1000" in Tibbo:
Loading Profile...
