Inleiding tot de Microcontroller Debugging (en een Pomodoro-Timer) (5 / 9 stap)

Stap 5: Onderbrekingspunten, Locals en Registers


Druk op de "Go" (
) knop om te beginnen de pomodoro. Aandacht besteden aan de LEDs. Er is iets fishy over de waarden die ze laten zien. Wanneer de timer eerst begint, moet het laten zien van het totale aantal pomodoro minuten (25) plus de pauze notulen (5). In binary is dat '11110'. Hmm... Waarom zijn alle vijf LEDs op?

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" (

) knop. Na het indrukken "Reset" u zal worden ertoe aangezet met een lange adem bericht dat zegt duurt het een lange tijd om 'Run naar main'. Wat dit betekent is dat uw debugger te stoppen bij de eerste regel in de main functie is ingesteld maar uw enige hardware onderbrekingspunt is ingesteld op lijn 22. Om te stoppen op main, het programma zal het uitvoeren van één regel tegelijk totdat het tot belangrijkste. Nu, dat is niet een groot probleem, maar deze beperking kan worden lastig met meer complexe code. Merk op dat krachtigere microcontrollers veel meer hardware onderbrekingspunten kunnen, maar beter dan niets is (Ja, ik ben kijken u Arduino). :)

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" (

)) al manier aan de setLEDs functie, maar dit kan erg lang duren. In plaats daarvan, omdat we een onderbrekingspunt hebben we gewoon hit "gaan" (
).

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" (

) een paar keer. Als we één stap door de code, kunnen we kijken naar de registers wijzigen. U hoeft niet eens te kijken naar het gegevensblad om te weten dat het P1OUT-register de staat van de digitale pennen van de microcontroller, is aangezien de LEDs moeten worden als gevolg van wat je ziet in het venster "Register". Rode waarden in het venster "Register" betekent dat de laatste instructie uitgevoerd dat bepaalde waarde gewijzigd. Dit geldt voor variabelen in de "Locals" venster ook.

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)

Gerelateerde Artikelen

12V-180kV: een batterij aangedreven Marx-Generator (en inleiding tot de elektronica)

12V-180kV: een batterij aangedreven Marx-Generator (en inleiding tot de elektronica)

Als je dit Instructable leest, één ding is waarschijnlijk waar: u geïnteresseerd bent in hoogspanning! Zo ja, bent u bij ons aan het juiste adres; Marx generatoren kan voldoen aan uw dorst voor sparks, pony, en sensatie. Ik maakte deze Marx-Generator
LED Microcontroller Debug-Module

LED Microcontroller Debug-Module

Als het gaat om het debuggen van een microcontroller-circuit, zijn er niet een heleboel eenvoudige opties.  Aangezien een microcontroller circuit meerdere dingen gaande op hetzelfde moment wellicht, het meten van spanningen met een DMM geen optie.  M
Inleiding tot Leatherworking

Inleiding tot Leatherworking

Leder is een geweldig product dat is gebruikt door de mens sinds echt, het begin van de mens. Het is in kleding, schoenen, tassen, riemen en holsters en echt, vrij veel alles wat die je van bedenken kunt kan worden gemaakt van leer.Werken met leer is
Configureren MKS Sbase v1.2 32-bits domeincontroller basics en inleiding tot de Smoothieware.

Configureren MKS Sbase v1.2 32-bits domeincontroller basics en inleiding tot de Smoothieware.

ProlougeIk ben echt blij om te zien hoe deze fundamentele intro in Smoothieware en de MKS Sbase 1.2 controller zoveel aandacht hebben gekregen, en hoop echt dat het gaat om het helpen van mensen aan de slag of besluiten niet te.Ik heb aanvaard in rob
Inleiding tot de MaxMSP

Inleiding tot de MaxMSP

MaxMSP is een visuele programmeertaal waarmee u kunt bouwen van complexe, interactieve programma's zonder enige voorafgaande ervaring schrijven van code.  MaxMSP is vooral handig voor gebouw audio, MIDI, video en grafische toepassingen waar gebruiker
Inleiding tot het installeren van web apps.

Inleiding tot het installeren van web apps.

Webapplicaties zijn een zegen voor uw computeromgeving bieden. Traditioneel zou u computer software applicaties lokaal op elk systeem laden.  Zelfs met geautomatiseerde software kan implementatie systemen, nog steeds worden ondersteunen intensieve. M
How To Make Websites - Complete Inleiding tot de Webdevelopment

How To Make Websites - Complete Inleiding tot de Webdevelopment

Bekijk op YouTubeDeze video serie is het introduceren van websiteontwikkeling voor beginners die niets weet over het maken van websites. Deze eerste aflevering introduceert de software die ik gebruik in mijn workflow om websites te maken om de beste
Inleiding tot de Light Emitting Diode met behulp van Snap Circuits

Inleiding tot de Light Emitting Diode met behulp van Snap Circuits

In deze foto Instructable, leert u over de Light Emitting Diode, of LED. U zult ook leren hoe te bouwen van een eenvoudige schakeling die aantoont hoe de LED werkt met behulp van Snap Circuits.Onderdelen nodig:1 basis raster (11 "x 7.7") # 6SC B
Zomer 2014 Inleiding tot Engineering competitie

Zomer 2014 Inleiding tot Engineering competitie

Juli 3, 2014DOORGroep: Één stukBu JiaqingQian-JunqiXiang YinanYang SiyuanChen MiaomiaoVG100 INLEIDING TOT DE TECHNIEKDEPATMENT VAN INSTALLATIE-EN MACHINEBOUWUNIVERSITEIT VAN MICHIGAN – SHANGHAI JIAO TONG UNIVERSITEIT GEZAMENLIJK INSTITUUT(UM SJTU JI)
Inleiding tot vinyl plotter/snijplotters

Inleiding tot vinyl plotter/snijplotters

dit is een inleiding tot vinyl plotters en scharen.
Inleiding tot Aquaponics

Inleiding tot Aquaponics

Toen ik voor het eerst over aquaponics hoorde, werd ik vrij opgestookt. Het was een onbekend begrip op het moment, zijnde kundig voor vissen en planten in harmonie groeien. Het heeft een paar jaar geduurd, maar ik bouwde tot slot een systeem dat vold
Inleiding tot hardware: schoonmaken en aanvang van de werkzaamheden

Inleiding tot hardware: schoonmaken en aanvang van de werkzaamheden

Hi!Vandaag ga ik u tonen hoe te uw computer schoon, uitstappen van het geval, aan de slag. Dit waarschijnlijk moet komen voordat mijn vorige tutorial [Klik hier], maar ik vergat dat u deze Help-informatie wellicht. Doe opmerkingen achterlaten met je
Inleiding tot Java Programming

Inleiding tot Java Programming

dus als u hebben gezworven op dit instructable, bent u waarschijnlijk op zoek om te leren hoe te programmeren in java of u wil gewoon om te leren hoe om beter te begrijpen hoe uw computer/smartphone/tablet werkt. Java is een programmeertaal die compa
Hoe Hack een Apple Time Capsule met een Raspberry Pi

Hoe Hack een Apple Time Capsule met een Raspberry Pi

Invoering van de "Pi-Capsule." Het is momenteel de enige Apple Time Capsule die u op uw TV aansluiten kunt..., betekent dit dat het een Apple TV? ;-)OK, ok, laten we zeggen dat je hebt een oude Apple Time Capsule rond leggend dat niet meer werkt