Något smart sätt att göra lookupptables i PIC?
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Något smart sätt att göra lookupptables i PIC?
Finns det något klyfigare sätt att göra lookuptables än att göra som man brukar med RETLW xx? Typ:
SENSORCAL ADDWF PCL
RETLW 0X00
RETLW 0x02
RETLW 0x04
RETLW 0x07
RETLW 0x1A
Metoden är skapligt snabb och fungerar bra upp till 255 poster, men det tråkiga är att om man har externt genererat data som skall in i tabellen så är det lite småtrist att knacka in alla posterna manuellt. Det går ju, men är inte så roligt. Och i de fall man har längre tabeller typ ett par tusen rader så måste man nästla tabellen, inte så svårt egentligen, men blir ännu stökigare att lägga in manuellt eftersom det dels är en satans massa att skriva och blir lite oöverskådligt att behöva välja 256-postsstycken.
Är det någon som har en enklare metod att få in datat ( som från början ligger i Mathcad eller excell) till MPASM än att knacka om det manuellt?
SENSORCAL ADDWF PCL
RETLW 0X00
RETLW 0x02
RETLW 0x04
RETLW 0x07
RETLW 0x1A
Metoden är skapligt snabb och fungerar bra upp till 255 poster, men det tråkiga är att om man har externt genererat data som skall in i tabellen så är det lite småtrist att knacka in alla posterna manuellt. Det går ju, men är inte så roligt. Och i de fall man har längre tabeller typ ett par tusen rader så måste man nästla tabellen, inte så svårt egentligen, men blir ännu stökigare att lägga in manuellt eftersom det dels är en satans massa att skriva och blir lite oöverskådligt att behöva välja 256-postsstycken.
Är det någon som har en enklare metod att få in datat ( som från början ligger i Mathcad eller excell) till MPASM än att knacka om det manuellt?
PIC16/PIC18 ???
Sen är det inte så svårt att fixa ett program/script/whatever som
läser en fil med rå-data och skapar en INC fil med ASM, som sedan
inkluderas i applikationen.
Jag har inte kollat, men det skulle förvåna mig om det inte finns
åtminstånde någon länk på www.piclist.com .
EDIT: Kollade lite, och det finns t.ex ett Windows program som som
läser en WAV fil och genererar ASM instruktioner för att lagra "ljudet"
i programminnet. Kasnke inte helt vad du behövde...
Sen är det inte så svårt att fixa ett program/script/whatever som
läser en fil med rå-data och skapar en INC fil med ASM, som sedan
inkluderas i applikationen.
Jag har inte kollat, men det skulle förvåna mig om det inte finns
åtminstånde någon länk på www.piclist.com .
EDIT: Kollade lite, och det finns t.ex ett Windows program som som
läser en WAV fil och genererar ASM instruktioner för att lagra "ljudet"
i programminnet. Kasnke inte helt vad du behövde...
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Aha, tackar! - nja det är linjärisering av en givare som skall tankas över, men principen är den samma. Klyfigt att köra med en INC-fil så behöver man inte ändra programmet utan bara inc-filen. Enkelt, men har inte tänkt på att det - givetvis är så man skall göra!
Det är ögonen man blir blind på och skallen man blir korkad i
EDIT: 16F, har aldrig ägt en 18F ens, känns som man borde orka läsa sig in på dem då de verkar ha en del listiga vidareutvecklingar.
Det är ögonen man blir blind på och skallen man blir korkad i
EDIT: 16F, har aldrig ägt en 18F ens, känns som man borde orka läsa sig in på dem då de verkar ha en del listiga vidareutvecklingar.
OK, linjarisering...
Här är ett exempel som heter "Compressing large tables with linear interpolation" :
http://www.piclist.com/techref/microchi ... lation.htm
Tanken är att inte lagra alla värden, utan bara en del och sedan interpolera fram mellanvärderna.
Annars har både http://www.piclist.com/techref/microchip/tables.htm
och http://www.piclist.com/techref/microchip/bigtable.htm
en hel del kod och diskussioner kring tabeller...
Här är ett exempel som heter "Compressing large tables with linear interpolation" :
http://www.piclist.com/techref/microchi ... lation.htm
Tanken är att inte lagra alla värden, utan bara en del och sedan interpolera fram mellanvärderna.
Annars har både http://www.piclist.com/techref/microchip/tables.htm
och http://www.piclist.com/techref/microchip/bigtable.htm
en hel del kod och diskussioner kring tabeller...
Ett annat alternativ är att skriva ett litet program på PC som gör om tabellvärdena till motsvarande hexkoder för "retlw"-instruktioner. Sedan genererar det tabellen som en IntelHEX-fil som läggs in på en fördefinierad adress i PIC:ens flashminne.
Allt beror på hur ofta man skall ändra på sakerna. Är det en lineariseringstabell så skall det ju inte ändras så ofta så då funkar en inkluderingsfil säkert alldeles utmärkt. I andra sammanhang där man kanske vill ändra oftare eller mellan olika exemplar så kan denna varianten vara enklare eftersom mam inte behöver assemblera och länka om koden varje gång.
Allt beror på hur ofta man skall ändra på sakerna. Är det en lineariseringstabell så skall det ju inte ändras så ofta så då funkar en inkluderingsfil säkert alldeles utmärkt. I andra sammanhang där man kanske vill ändra oftare eller mellan olika exemplar så kan denna varianten vara enklare eftersom mam inte behöver assemblera och länka om koden varje gång.
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Sant, ännu en bra metod. Iofs ändras värderna för varje sensor så det blir ett egen kompilering för varje sensorexemplar, men som det är nu är det väldigt få exemplar som skall göras vilket gör att lite handpåläggning inte är någon katastrof. men bra att ha flera metoder eftersom man aldrig vet när man får fler tabeller !
