Hallo! Von der Assemblerprogrammierung damals in der Ausbildung weiß ich, dass man bei den PIC controllern, hier PIC 16F684 einen Bankwechsel machen muss, wenn die eine Bank mit variablen voll ist. Dieser Pic hat 2Bänke. Gilt dies nur für ASM-Programmierung oder muss ich in C auch einen Bankwechsel machen? wenn ich keinen Bankwechsel mache, sondern einen vorhandernen C-Code um eine globale Variable ergänze, erhalte ich eine Fehlermeldung: Error [491] ; . es fehlen 0x16 Wörter für psect "rdata_0" im Segment "BANK0" (HI-TECH Compiler) ohne die zusätzliche 32-Bit Variable habe ich noch 16Words!!! frei. Wie kann das? Muss ich nen Bankwechsel vollziehen? Wenn ja, wie? Eine Zeile wie: STATUS |=(1<<5); lässt sich nicht kompilieren genauso: #asm bsf STATUS,RP0 #endasm Bitte um HILFE!!! :(
hatte ne zeit gegooglet aber nichts gefunden. Gab es da nicht eine Pragma-Anweisung?
Einfach bei einigen Variablen Bank1 oder andere Bänke bei der Deklaration angeben.
Der Bankwechsel ist Compilerabhängig. Bei CC5X war es ein e #Pragma anweisung Bei PIC-HITECH ist es wie folgt: bank1 unsigned char hugo andere Compiler: siehe Manual
Was ist denn das für ein Compiler, bei dem man das noch selbst machen muss?? Steig mal auf einen vernünftigen um!
Kalli schrieb: > Was ist denn das für ein Compiler, bei dem man das noch selbst machen > muss?? > Steig mal auf einen vernünftigen um! Da liegt wohl ein Missverständnis vor, die Bank muss nur bei der Deklaration angegeben werden, nicht bei jeder Verwendung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.