bank man råkar befinna sig. Den lägger alltid in bcf/bsf
kommandona för att "byta" bank.
Självklart är det upp till programmeraren att avgöra om man
tycker att man har så stor kontroll över sin kod att man inte
behöver banksel, men å andra sidan så ska det aldrig bli fel
med banksel...
Sen, titta på denna del (t.ex) :
Kod: Markera allt
banksel Count
decfsz Count,f
goto $+2
goto $+3
bsf ONELED
Det gör det inte när jag bygger koden...
Det enklaste i detta fall eftersom det är så få variabler, är
att flytta in Count i UDATA_SHR...
*Eller* att se till att bankerna alltid står rätt, t.ex så här :
Kod: Markera allt
banksel Count
decfsz Count,f
goto $+2
goto $+3
banksel PORTD
bsf ONELED
så att det blir så här :
Kod: Markera allt
#define LEDPORT PORTD
#define ONELED LEDPORT,2 ; OUTPUT
#define TWOLED LEDPORT,3 ; OUTPUT
...
... och sen :
...
...
banksel Count
decfsz Count,f
goto $+2
goto $+3
banksel LEDPORT
bsf ONELED
"flytta" alla LEDs till en annan port...