Stap 5: Onderbrekingspunten, Locals en Registers
Dus, laten we een kijkje nemen op de 'setLEDs'-functie. Ofwel het is de verkeerde waarde ontvangen of ontvangen van de juiste waarde maar worden getoond van de verkeerde waarde (of sommige vreemde combinatie van beide).
Scroll naar beneden naar de eerste regel van de functie van de setLEDs (lijn 22, zie afbeelding 1). Met de rechtermuisknop op een deel van die lijn en selecteer "Onderbrekingspunt (Code)". Let op de rode stip aan de linkerkant van die lijn van code? U kunt in deze marge aan/uitschakelen onderbrekingspunten ook dubbelklikken. (afbeelding 2) Een onderbrekingspunt is een punt de in de code waar de uitvoering van het programma zal breken zodat u debug.
Het onderbrekingspunt is ingesteld, druk op de "Reset" (
Voor nu, gewoon begrijpen, dat als een onderbrekingspunt is ingesteld wanneer u uw code start, het zal nemen een extra seconde of twee belangrijkste bereiken.
Oef... Oke. De groene pijl is bij de eerste lijn in main nu (lijn 50, zie afbeelding 3)? Geweldig, nu wij kon één stap (d.w.z. "Stap" (
Bijna onmiddellijk, scrollt de groene pijl naar lijn 22. Om een beter idee over wat deze functie doet, selecteer "weergave"→"Locals" in het menu. (afbeelding 4) In het venster dat omhoog komt, de lokale variabele "waarde" is weergegeven met... err... de waarde, "0x1e". Met de rechtermuisknop op de variabele in het venster lokale variabelen, kunt u het wijzigen van de basis notatie van de waarde. Veranderen in decimale en aankondiging nu dat de functie inderdaad voorbij het juiste nummer (30).
Aangezien deze functie alleen betrekking heeft op een enkele variabele, en we weten dat het klopt, laten we de "Locals"-venster te sluiten. Nu Selecteer "weergave" → "registreren" in het menu. In het venster "Register" wijzigen de dropdown doos om te laten zien "Poort 1/2". Vouw de structuur van de "P1OUT" uit. (afbeelding 5)
P.0 en P.7 wellicht willekeurige waarden maar P.1 – P.6 moeten alle nul. Druk op "Stap" (
Merk op dat de waarde alleen rood als het register wordt gewijzigd, zodat na het uitvoeren van lijn 45, het register rood is en een 1 in plaats van de verwachte 0 vertoont. We vonden onze bug! Het lijkt erop dat ik omgekeerd de binaire operatoren. (afbeelding 6)