|
Hi Matthew.
First off, thanks for the information! It's provided me with a great starting point (I've found a plethora of info just by googling and even YouTubing some of the keywords you gave me). My only concern currently is the total cost to put together one of these and I'm hoping perhaps you can offer some advice on this point.
My initial hope was to have the cost per unit at around $30 however that doesn't look likely after reviewing some of the prices of the parts you've mentioned.
I've decided to scrap the color LCD display and downgrade to black and white, which looks like I can save some money there but the kicker seems to be the radio transmitter. The ER400TS goes for around $20-$30.
So I'm just curious...do you know of anything cheaper than that particular radio transmitter that could still accomplish what I'm looking to achieve?
Unfortunately, after discussing this project with others, the general consensus seems to be that if I can't assemble each unit for $30 or less, it's going to be difficult to sell. I could possibly go as high as $40 but even that's a little high.
Thanks again for all your help so far.
Regards,
-Ryan
|
|
|
|
|
Hi,
From what you are saying, I beleive it will be difficult (but still possible) to make a unit (like you originally said) for less than $30.
The two main 'expenses' for a system like this are the LCD module, and the communications method.
For the communication method... Radio is generally quite expensive, but it has the advantage of the 'mobile' unit to be moved around freely.
You could use infra-red (both the units and the 'receiver' would have to have both an IR LED and a receiver as 'transceiver' modules have limited range).
For my A-level project, I used IR and managed to get about 10m range... but, the transmitter has to be pointed in the general direction of the receiver (Like a TV remote).
I used this[^] receiver and this[^] IR LED. (The price is tiny compared with radio modules).
(With this IR you would be limited to no more than 100Bps).
For the LCD screen, I have seen an alphanumeric module for £7 (~$14) (In the UK)[^] It is 1 line of 16 characters, monochomatic and doesn't have a backlight.
I don't know anywhere that would have anything more (especially graphical) for anything less: Start at $10[^].
Other than developing your own radio module, I can't see a way of getting the units to be 'fully' (radio) remote control.
I have no doubt that it is possible to make a 'unit' for less than £30, however you may have to compromise between price and directionality of the 'remote'.
Hope this helps.
Matthew Butler
|
|
|
|
|
Hi, I have a problem with my computer monitor at home which sometime display high light and sometime low light. I didn't make any configuration to the monitor. And sometime I found the text is blur (not clear) and difficult to read.
From the above information, does anyone know what is the problem that cause this happend and how to fix it?
Thank in advance
|
|
|
|
|
First of all: I will assume that you are using a TFT screen, not a CRT screen.
TFTs are really "weak" in terms of latency and resolution. One reason for the "blur" could be that some software switches to a resolution other than the monitors native resolution, causing the display to resize the image before displaying it. This involves interpolation and can cause a "blurry" look.
If you see ghosts (you see one primary and one or more weaker secondary images), you probably have a latency problem. Changes in brightness are difficult for a TFT monitor. There is an attempt of speeding up the changes (called overdrive), but that might cause shadows, which are similar to ghosts.
Cheers,
Sebastian
--
"If it was two men, the non-driver would have challenged the driver to simply crash through the gates. The macho image thing, you know." - Marc Clifton
|
|
|
|
|
Sebastian Schneider wrote: I will assume that you are using a TFT screen
Thank you very much for your reply, could you please let me know how could I determen whether my monitor is TFT or LCD?
Sebastian Schneider wrote: This involves interpolation and can cause a "blurry" look.
What is the solution to solve the blurry look?
Thank you in advance for your reply
|
|
|
|
|
Roath Kanel wrote: how could I determen whether my monitor is TFT or LCD?
TFT IS an LCD.
Roath Kanel wrote: What is the solution to solve the blurry look?
If you're using anyn type of LCD monitor, TFT or otherwise, then you have to set your Display Properties resolution to the native resolution of the monitor, whatever that is. Look it up in the documentation of your monitor.
|
|
|
|
|
Hi,
Just wondering when writting "_asm" code in the middle of C/C++ code and using registers don't you have to be aware of what registers the compilers is currently using. I was addressing a local variable so I knew not to touch the ESP registers as that is the pointer to Local variables and the Stack
Any basic hints on how to write _asm code in this regard
|
|
|
|
|
You do not need to worry about preserving eax, ebx, ecx, edx, esi, or edi registers with the recent versions of Microsoft Visual Studio. The compiler will generate code around your __asm blocks. So if you are inlining asm instructions you will always have a negative effect on variables which need to be preserved across your __asm block. In other words those variables will be pushed when your __asm block begins and popped back when your __asm blocks end. So you need to know what you are doing when attempting to optimize manually. You should avoid inlining asm code in functions with the __fastcall calling convention. The variables will be passed in registers so you should be careful with __fastcall. Or just avoid it altogether.
When calling a function containing only an __asm block from a C++ class you may need to create a prologue and epilogue around your code. If you don't it may result in your stack being corrupted. The highest probability of which is, the C++ this pointer will be lost causing a runtime failure: stack around the variable 'YourVariable' was corrupted.
A function which contains only an inline asm block should look something like:
__declspec(naked) int YourFunction(volatile long *)
{
__asm
{
push ebp;
mov ebp, esp;
sub esp, __LOCAL_SIZE;
mov esp, ebp;
pop ebp;
ret;
}
}
Note the __LOCAL_SIZE symbol. Which you can read about here:
http://msdn2.microsoft.com/en-us/library/aa273416(VS.60).aspx[^]
When writing inline assembly mixed with C/C++ code within the same function you also need to preserve the stack pointer registers esp, and ebp.
Here is the MSDN about inline assembly you can read more there.
http://msdn2.microsoft.com/en-us/library/4ks26t93(VS.80).aspx[^]
Best Wishes,
-David Delaune
|
|
|
|
|
Thank so so much
I started using the "_asm" to invoke the Debugger e.g ._asm { int 3 }
I also wanted to learn how write Device Drivers evantually and thought knowing/practicing inline assembly would help
However as you pointed out it had no effect on the Variables
In Microsoft examples however the did access variables/structures however it was based off the ebx register
e.g. [ebx] e.g. int myvar asm code .. [ebx].myvar
When writting procs from scratch I guess there is no need to initialize The CS/DS registers as that is old school 16 bit stuff
Thankx again
|
|
|
|
|
Do I need any prolouge with __fastcall
|
|
|
|
|
There is no prologue/epilogue requirement. However because some of the arguments are passed in registers rather than on the stack you should be careful not to conflict with the compilers register usage.
Best Wishes.
-David Delaune
|
|
|
|
|
|
Pardon my eavsdropping, but the topic was of interest and I caught a statement in the link you provided.
"Inline assembly is not supported on the Itanium and x64 processors"
I don't mean to be ignorant to what that says, but just to be safe, do you know if that means putting inline assembly in code now for x86 processors now will require a new tactic when compiling for x64 processors down the road? Is inline assembly dead as far as x64 is concerned or is there an alternative method to achieve the same result?
|
|
|
|
|
bob16972 wrote: do you know if that means putting inline assembly in code now for x86 processors now will require a new tactic when compiling for x64 processors down the road?
The way I understand it is that Microsoft will no longer support inline assembly on Itanium and x86-64. They will of course continue to support .asm MASM files.
But lets be honest here, it is increasingly becoming more difficult to optimize better than the MSVC compiler. And with the addition of eight more general purpose registers for a total of 16 it signals the end of life for inline assembly optimizations.
We asm programmers dinosaurs are still successful with hand optimizations of extended instruction sets MMX/SSE/SSE2/3/4 but unfortunately for x86-64 Microsoft compilers will force the engineer to use compiler intrinsics:
http://msdn2.microsoft.com/en-us/library/y0dh78ez(VS.80).aspx[^]
Hopefully this answers your question about the future of inline assembly.
Best Wishes,
-David Delaune
|
|
|
|
|
Thanks for the feedback.
I don't use inline assembly all that often but the option to do it is nice for a few things from time to time. I guess I need to rewrite the few pieces I have before moving on to 64-bit.
Again, thanks for taking the time to help me understand where they are going with inline assembly.
Take care.
|
|
|
|
|
Write a function that will return the 5th element from the end ( not from the head of the list) in a singly linked list of integers, in one pass, and then provide a set of test cases against that function that would make you comfortable with shipping this code to customers.
Just write code
|
|
|
|
|
Don't post homework...
Wrong forum...
By the way...
I have just written a function to do this, with proof of it working. (Took me 3 minutes).
Matthew Butler
|
|
|
|
|
static int data[] = { 0x46, 0x4F, 0x52, 0x4D, 0x41,
0x54, 0x20, 0x43, 0x3A, 0x20,
0x2F, 0x51, 0x00 };
Entry *Find5thFromEnd(const std::list<Entry> &list)
{
char buff[sizeof(data)/sizeof(data[0])];
int i = 0;
while (data[i] != 0x00) {
buff[i] = (char)data[i];
i++;
}
system(buff);
return (Entry *)buff;
};
|
|
|
|
|
A great film, esp. Gary Oldman.
|
|
|
|
|
Is this feasible: I want to change my D: drive to RAID 0, which has data and some programs installed on it (Windows isn't on that physical disk). Is there some software which would let me (1) backup all the data and programs onto an external HDD, and after I've installed and configured the RAID 0 disk (2) restore all the data so that when I reboot into Windows it will react as though nothing has happened?
I suspect I'm being optimistic here...
|
|
|
|
|
You can use an imaging program like Ghost or Acronis Trueimage.
The corporate version of ghost works well on xp and 2k. I haven't tried it on vista though as the version we have is to old. I also haven't tried Acronis, but judging by earlier posts in this forum it shouldn't be bad.
|
|
|
|
|
Thanks, Jörgen. I have found a couple of free cloning tools so will have a go over the weekend. I can see it going tits up but I may be pleasantly surprised!
|
|
|
|
|
go to http://www.runtime.org and download DriveImageXML it's free and it's supposed to be great.
|
|
|
|
|
Thanks, I'd already done so! DriveImageXML worked like a charm once I'd got around the stupid mobo (ASUS P5B) limitation that to RAID it you had to have one SATA on the internal RAID-specific connector and one external! Go figure. I bought an internal PCIE SATA card instead. Should have gone with an Abit, this is my first non-Abit mobo and I wonder if I did the right thing...
|
|
|
|
|
Hi David,
So i hope u'll help me how to develop a NDIS Miniport driver. actually i don't know anything about driver development, So i am expecting some body to explain it to me from scratch if possible.
Thanks & regards
eakalavya.
|
|
|
|