Beste mensen,
Ik heb een PIC16F84 en ben bezig met het programmeren van deze. Ik heb al een paar schakelingen gemaakt, zoals een looplicht. Maar dat was allemaal met alleen maar output. Nu wil ik een keuze maken (Verschillende knopjes) om een ander soort knipperen te maken. Hoe stel ik poort A nu zo in dat bit 0 output is, bit 1 ook, bit 2 ook, en bit 3 input is? En hoe maak ik gebruik van poort B?
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Ik zou zeggen, pak de datasheet er eens bij en er zal een wereld voor je opengaan.
En om terug te komen op je voorbeeldje, zet op het TRISA register gewoon de code die hoort bij wat je wilt.
Een 0 is een uitgang, dus in jouw geval moet je 0001xxxx in dat register plaatsen. Die xxxxjes mag je zelf invullen want die bit nummer had je niet opgegeven.
instelporta EQU 85h
instelportb EQU 86h
ORG 00h
BSF 03,5
MOVLW 08h
MOVWF instelporta
BCF 03,5
Zo staat hij toch goed? De binare code is nu namelijk 1000.
Of heb ik het verkeerd begrepen? En ik hoef nu toch alleen instelporta door instelportb te vervangen om Poort B te initialiseren?
Edit: Het eerste probleem heb ik gezien, ik telde van rechts naar links, dat komt door de datasheet, daar telt hij de bits ook van rechts naar links
[Bericht gewijzigd door Tristan op ]
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op za 14-09-2002 16:58:31 schreef Tristan:
En ik hoef nu toch alleen instelporta door instelportb te vervangen om Poort B te initialiseren?
Klopt, en dat is omdat je dan namelijk op adres 86 die data moet zetten ipv 85. Want zoals de datasheet aangeeft is 86h het TRISB register. Suc6.
Even gewoon uit interesse, waar zijn die BSF en BCF commands dan voor? Ik weet wel wat ze doen (Bit Set File & Bit Clear File) maar niet in die context.
Edit: En moet ik die dan ook twee keer aanroepen, of kan het dan gewoon zo:
BSF <value>
MOVLW <value>
MOVWF instelpoorta
MOVLW <value>
MOVWF instelpoortb
BCF <value>
[Bericht gewijzigd door Tristan op ]
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Die BSF en BCF zorgen ervoor dat er banken worden verwisselt. Dat is nodig anders kun je niet bij adresgeheugen 85 en 86. Aan het einde word de bank weer teruggezet. Gebruik even de zoekfunctie van het forum voor meer info. Die bankswitching al namelijk al eerder aan bod geweest in een topic.