Öppen källkod mikrochip LED / PWM Driver projektet (2 / 3 steg)

Steg 2: Software Design




Programmering av 12F609 som skiljer männen från pojkarna. Även om hårdvaran är superenkel, är programvaran inte. Jag tillbringade veckor (OK, kanske två) hälla över det här. Koden nedan har optimerats högt bara för det här programmet. Det finns praktiskt taget ingen RAM eller ROM överblivna att avvara. I själva verket jag sprang ut RAM många många gånger och var tvungen att eter droppa funktionellitet eller leta efter fler optimeringar.

12F609 har inte en UART. Så, ta emot nya kommandon bibehållen PWM kanaler blev min mardröm. PWM-kanaler måste bibehållas även när en ny karaktär tas emot. Det mänskliga ögat är bara så bra på att se minsta blip som kommer från en LED.

Ta emot en ny karaktär med programvara är ingen stor sak. Men, ta emot tecken när du uppdaterar PWM-utgångar. Tricket är att uppdatera LED utgång kanaler medan du väntar på nästa bit på länken comm. I praktiken var det är multitasking, och att få det alla arbetande en större krångel. Helt enkelt omöjligt utan en LSA (logik staten analyzer). Jag använde en utgångsstiftet som en debug pin. Jag skulle växla stiftet på vissa händelser och titta på det på min LSA. Använda detta trick, kunde jag titta på varje bit tas emot av min kod.

OK, OK, nog redan. Nedan hittar du de källfiler som gör magiskt. Jag publicerar dem i hopp om att andra kan lära sig från mina ansträngningar. Det verkligen finns några bra kod där.

Istället för att beskriva alla program i detalj, borde kommentarerna i koden förklara de flesta saker. Kom ihåg, när i tvivel "Använda force - Visa källan." Jag la ett gäng fler kommentarer till koden i ett försök att göra det mer lättläst. Jag hoppas du håller med att det är faktiskt läsbar.

=========================================

Uppdatering: 16 maj 2012

Nedan är en Zip-fil som har 32 hex filer inom. Varje hex filen är den samma utom den hårdkodade nodnummer. Så Flash-nod använder #1 filen "1.hex" för att programmera mikro.

Detta bör hjälpa folk som inte har tillgång till CCS C Compiler.

Se Steg
Relaterade Ämnen

Öppen källkod hårdvara gåva Guide

det har gått ett år sedan vår sista öppna källkod gåva guide - i år är det händer så mycket på i världen av MAKE, öppen källkod, och utöver att vi har en serie av gåva guider för den här julen. Den första är vår öppen källkod hårdvara gåva guide - de...

Öppen källkod-TV-Box - GeekBox

"... du är en slav, Neo. Som alla andra föddes du i träldom. Ett fängelse som du inte kan smaka eller se eller röra. Ett fängelse för din sinne." Morpheus - matrisen (1999)Okej. Jag måste erkänna att det är en teatral introduktion (kanske för te...

Designa en Multi nod LED PWM lampa

detta instructable visar hur jag designade en lysdiodlampa PWM controller. Flera lampor kan vara uppträdda tillsammans för att göra stora strängar av ljus.Alltid har varit att skapa några blinkande LED-lampor till jul på min önskelista. Förra julen j...

Ghetto pixlar - bygga en öppen källkod BlinkM

om inte du har levt under en digital sten för senare år, eller bara helt enkelt inte är intresserade av blinkande lampor, du vet redan om det awesomeness som BlinkM från ThingM. Det är en mycket liten PCB med en high power LED som reagerar mycket lät...

Dutasterid - öppen källkod Robot hud

denna textil hud är utformad för att sträcka sig över en robotic lem för att upptäcka intensitet av tryck samt platsen för kontakt över hela ytan. dutasterid beställdes av Ian Danforth som också hjälpt fond de Bilibot, en prisvärd robotics plattform....

Plan B, en öppen källkod 3DP (pulver och inkjet) 3D-skrivare

Plan B är en öppen källkod 3DP 3D-skrivare. Det använder bindemedel och pulver för att skapa it´s delar. Det kan byggas för €1000,-($1300,-) om delarna kommer rätt. Den använder standard 3D printern delar och elektronik, off hyllan inkjet komponenter...

Öppen källkod Solarpad Kit sol USB-laddare

Vänligen klicka nedan för att besöka vår kicken projektsida för Solarpad!http://www.Kickstarter.com/projects/249225636/sola..."Äntligen, en riktig sol laddare för vandrare och cyklister" - Cult of MacKan en kompakt sol USB laddare ut en telefon...

Öppen källkod Theremin i Matryoshka

Genom att kombinera en theremin, den legendariska musik instrumenterar uppfanns av Leon Theremin tillbaka i 1920 med en ryska Matryoshka docka du får en så kallad Matryomin. Uppfanns av japanska theremin spelare Masami Takeuchi tillbaka i året 2000 b...

ZelosLaser skärare 2.0: Öppen källkod, robust & mångsidiga

Jag börja planera ZelosLaser gravörens med målet av en välbyggd, öppna mjuk och hårdvara Machine.The ZelosLaser gravör är prisvärt, med en kompakt design och posten perfekt för daglig hobby.Det är lätt att bygga. även för icke hobby.Glöm aldrig att l...

Interactive, öppen källkod Mood Light

detta instructable kommer att gå igenom hur man gör en interaktiv, multi-function mood light. Kärnan i detta projekt är BlinkM I2C RGB LED. Som jag var du surfar på webben en dag, BlinkM fångade min uppmärksamhet och jag tänkte att det var alldeles f...

LED Rainbow - RGB LED PWM Controller konstruktion - lätt att bygga

steg för steg, lätt att följa instruktionerna på byggnaden av en LED Rainbow RGB LED PWM Controller. Endast en minimal mängd delar behövs, tillsammans med en PIC-processor, och du kan bygga en av de mest fantastiska LED registeransvariga tillgängliga...

Droidalyzer - en öppen källkod, Bluetooth alkohol detektor tillbehör för Android-telefoner

*** produktversion av Droidalyzer finns nu från Seeedstudio ***Droidalyzer är en öppen källkod, Bluetooth alkohol detektor tillbehör för Android-telefoner. Par Bluetooth aktiverat Droidalyzer till din Android-telefon och sedan använda den för att upp...

DIYLILCNC: Öppen källkod planer för en billig, lätt-till-bygga CNC kvarn. (v1.0.2)

DIYLILCNC projektet är en uppsättning av planer för en billig, fullt fungerande 3-axlig CNC kvarn som kan byggas av en individ med grundläggande shop färdigheter och verktyg tillgång.CNC-enheter används för att tillverka fysiska objekt med hög precis...

Galileos Finger - en öppen källkod astronomi lärande verktyg

VARNING: FÖLJANDE PROJEKTET ANVÄNDER LASER. VÄNLIGEN KONTROLLERA DINA LOKALA OMRÅDET REGLER OM ANVÄNDNING AV LASER.VAR FÖRSIKTIG EFTERSOM HÖG EFFEKT LASRAR KAN OCKSÅ SKADA ÖGONEN.JAG KAN INTE HÅLLAS ANSVARIG FÖR EVENTUELLA KONSEKVENSER AV ANVÄNDNING....

ÖPPEN källkod LUFTRENARE

Hej y'all,Jag Ian van Mourik en produktdesigner från Nederländerna. Detta instructable är hjärnan barn som jag var bara tvungen att dela med världen. Dålig luftkvalitet orsakar olika hälsoproblem och rening lösningar är ofta komplexa och dyra. Lösnin...

Öppen källkod Papercraft

öppen källkod Papercraft, eller, en låda till din mobiltelefon!Här steg för steg, är hur man får en låda för din mobiltelefon, Ipad, vad som helst, med bara programvara med öppen källkod på Linux.Det finns Windows-versioner för alla dessa program.Och...

Öppen källkod PI

jag kom upp med denna idé eftersom jag trodde ett säker sätt att "Geek ut" något är att inkludera en Arduino och några lysdioder några hur. Min nästa tanke var att lysdioderna kommer att vara lite alltför krispigt så att de inte skulle verkligen...

Prototyp och konfigurera din egen realtidsklocka modul för Raspberry Pi (öppen källkod maskinvara och konfiguration))

För att hålla priset på hallon är pi ner utvecklarna vänster ut några av viktigaste av de realtidsklockan. För tillfället raspberry pi blir det tid över Ethernet från uppdatera tiden automatiskt från globala ntp (nework time protocol)-server, men det...

JustAPendulum: öppen källkod elektroniska pendel

Hej, med detta instructable jag vill visa dig en öppen källkod pendel som kan beräkna och behandla den uppmätta svängning perioden för att hitta gravitionella accelerationen av jorden (~ 9,8 m/s²)! Det är den mäktigaste av alla, upptäcka det!Projekte...