Kan iemand mij wat meer uitleg geven over het nut van de GPR (general purpose registers) adres 0C - 4F uit bank 1. Ik dacht dat deze registers als volwaardige data opslag registers konden gebruikt worden, maar dit blijkt niet zo te zijn. Ik heb ergens gelezen dat zij enkel een kopie bevatten van de overeenkomstige register uit bank 0. Waarvoor kunnen ze gebruikt worden? Kunnen ze als extra dataopslag ingezet worden?
Luk;
Je hebt gelijk dat de user registers in bank1 een copy van bank0 zijn. Als je de datasheet leest (...) dan zie je op de eerste bladzijde de features van deze processor:
PIC16F84 heeft 68 bytes aan user RAM.
De reden dat ze zijn gemapt over twee banken heeft te maken met het feit dat je bij gebruik van alle SpecialFunctionRegister niet hoeft na te denken in welke bank jouw data of variabelen opgeslagen liggen. Anders blijf je switchen en kun je de draad kwijt raken. Microchip heeft de 68bytes aan ruimte dus simpelweg twee keer uigevoerd.
Hogere types van de PIC, bijvoorbeeld de 16F877, hebben naast gemapte RAM-ruimte, ook ongemapte RAM-ruimte. Wat je hiermee kunt doen is je variabelen in de gemapte ruimte opslaan en data-arrays in de ongemapte ruimte opslaan.
Dit maakt programmeren handiger.
OK, bedankt voor de info...
Was gewoon nieuwsgierig naar het waarom, maar dat heb je me nu goed uitgelegd