Sunday, October 19, 2008

Incredible power of the micro controller

Every now and then i sit back and consider what i have done with a micro controller. Then i tend to search around the internet looking to see what others are doing. Needless to say i don't find many interesting projects.  It is all the same bull shit over and over again. One guy used the same chip i am using and managed to get a serial pass through lcd driver on it. 

This is almost depressing. Seriously, if this is what i have to look forward to in peers - i'm going to start looking behind me.

What a waste of a precious micro controller. Seriously people- wake up.

One of my projects which is a DIY spot welder requires a controller. It can be found here I fit the lcd driver, debug terminal(serial), joystick driver, string library, and menu subsystem on the chip. With applications and debug code i only used ~80% of the chip. The chip is an attiny2313 that weighs in at 2k program and 128 bytes of sram.

All of my code is written in avr assembler. I can give the best of the C programmers a run for their money in terms of speed of development, refactoring, and final binary size. 

This leads me into another compliant to most of the micro controller developers. What the hell is up with your drivers? If you want to see some lousy code -check out the code these people crank out. They use so called portable language (C) and end up beating the code into a state which renders it impossible to port.  I little suggestion to all you people who love to cite how portable your language is in comparison to assembly. Write truly portable code first and then make your argument. Until then keep your language and your blown out the ass practices to yourself. Just because you can flash an LED does not make you a programmer.

How about this for a test run I can move any of my drivers I/O to any pin on the device which can support the drivers cause. For example i can move any pin of any driver around and simple tell my code base the new pin definition, rebuild and call it magic - it works. All of that and it only takes one statement for every I/O pin that needs moved. Nothing else need be meddled.

No comments: