![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Hobbyist Programmer
Join Date: May 2005
Location: ma
Posts: 130
Rep Power: 4
![]() |
hardware programming
hi im posting here because i don't know if it really belongs in any of the other catergories. i've become interested in modding and taken things apart and examining them lately. i assume modding id be taking hardware from here and there so i want to learn more about programming hardware that are computers but not necessary pcs. what skills would i need for this besides soldering? do i need to learn assembly? ill give you an example. i was taking apart an old digital alarm clock and was curious what happens after you press the buttons and they hit the hotspots on the circut board. is there any books on the subject that people would recommend? thanks for any replies in advance.
|
|
|
|
|
|
#2 |
|
Resident Grouch
![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jun 2005
Posts: 6,453
Rep Power: 10
![]() |
It isn't called "hardware programming", it's just logic design using hardware devices. You should be familiar with boolean algebra so that you can convert logic expressions back and forth, reduce them, etc. One can actually construct any logic expression with AND gates and a NOT function (or OR gates and a NOT function). Flip-flops can be made with those also, but the one's you buy are better because of internal handling of edges. You can get manufacturer's data sheets on all those things and on other things like keypads and generally find how you would hook them up to make them work. There are also tons of microprocessor applications that aren't PCs. Such systems are called "embedded systems" because they often don't even have user interfaces, per se. Examples are mail sorters, the controller for your automobile engine, a lot of telecommunication equipment, stuff like that. Embedded systems ARE programmed, mostly using assembly language or C. I've done a ton of them, including medical equipment. You don't mess around with sloppy programming in many such systems. You could kill someone by failing to check the status of the functions you use.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code. Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers |
|
|
|
|
|
#3 |
|
Professional Programmer
Join Date: Mar 2005
Location: Glasgow, Scotland
Posts: 317
Rep Power: 4
![]() |
Just to be pedantic, I thought I'd add that you can make any logic circuit with just one type of gate, if it's either a NAND or a NOR, but in a way that's cheating since these gates combine the functions of the ones DaWei mentions so I suppose I'm just being a smartarse really.
|
|
|
|
|
|
#4 |
|
Resident Grouch
![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jun 2005
Posts: 6,453
Rep Power: 10
![]() |
You're pedantically correct, and that's cheating, as it's still more than "a gate"
. The NAND is an AND and a NOT. When ICs cost a bundle and it paid to get the quantities up, we bought all two-input NORs or all two-input NANDS, plus flip-flops, for our logic. It was cheaper than busting the quantities down by ordering two-input, three-input, four-input, XORs, etc. MSI and LSI sure made things easier when they came along.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code. Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|