Om de snelheid van een µC (24FJ64GB004) te testen (proteus) we het volgende programma:
toggle :
#include "p24fxxxx.h"
#include "ports.h"
void main(){
TRISA = 00000000000;
do{
PORTA = 00000000001;
PORTA = 00000000000;
}while(1);
}
de bedoeling is dus om een uitgangspoort zo snel mogelijk te zien toggelen, hier mee verkrijgen we echter een veel te lage frequentie(orde kHz'en), in vergelijking met de opgegeven frequentie( 32 Mhz) . Is er een mogelijkheid om instructies uit te sparen?
toggle
-
smd_lover
- Moderator

- Berichten: 1955
- Lid geworden op: di 24 mar 2009, 12:23
- Locatie: prov Groningen.. .. .. .. .. .. .. .
Is dit een schoolvraag?
Je kunt de ASM listing gaan bekijken en zien hoeveel instructies er worden gebruikt voor deze toggle.
Je kunt in de PIC datasheet vinden hoeveel klokpulsen de controller doet over de ASM instructies. Dit staat steeds vermeld bij de uitleg over de desbetreffende instructie.
Zo kun je precies uitrekenen wat de uitgangsfrequentie wordt.
Je kunt de ASM listing gaan bekijken en zien hoeveel instructies er worden gebruikt voor deze toggle.
Je kunt in de PIC datasheet vinden hoeveel klokpulsen de controller doet over de ASM instructies. Dit staat steeds vermeld bij de uitleg over de desbetreffende instructie.
Zo kun je precies uitrekenen wat de uitgangsfrequentie wordt.
Clock switching is enabled only when FCKSM1 is
programmed (‘0’). The FSCM is enabled only when the
FCKSM<1> bits are both programmed (‘00’).
dat staat in de data sheet om de snelheid vn de clock constant te houden maar hoe zet ik dit om naar code , is er zo nergens een lib waar we alle functies vinden?
programmed (‘0’). The FSCM is enabled only when the
FCKSM<1> bits are both programmed (‘00’).
dat staat in de data sheet om de snelheid vn de clock constant te houden maar hoe zet ik dit om naar code , is er zo nergens een lib waar we alle functies vinden?