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

Stap 4: Het toevoegen van bugs!


Laten we Voeg nu de rest van de bugs... err... code. Deze code is geschreven met een opzettelijke bug maar prima moet compileren. Uploaden naar de microcontroller en start een sessie voor foutopsporing.

#include "msp430g2211.h"

#define LED4 bits1
#define LED3 BIT2
#define LED2 BIT3
#define LED1 BIT4
#define LED0 BIT5
#define ZOEMER BIT6

unsigned int klikken = 0; teller voor elke timer irq
unsigned int seconden = 0; teller voor seconds
unsigned int minuten = 0; teller voor minuten
unsigned int new_minute = 0; markering voor het bereiken van de volgende minuut

configureerbare opties!
Const unsigned int pomodoro_length = 25; Hoe lang moet de pomodoro zijn? [default: 25]
Const unsigned int pomodoro_break = 5; en het einde? [standaard: 5]

Hiermee stelt u de LED's aan de lage 5 bits van 'waarde'
VOID setLEDs (char waarde) {}
if(Value & 0x10)
P1OUT | = (LED4); LED4 ingeschakeld
anders
P1OUT & = ~ (LED4); LED4 verrekening

if(Value & 0x08)
P1OUT | = (LED3); LED3 ingeschakeld
anders
P1OUT & = ~ (LED3); LED3 verrekening

if(Value & 0x04)
P1OUT | = (LED2); LED2 aangezet
anders
P1OUT & = ~ (LED2); LED2 verrekening

if(Value & 0x02)
P1OUT | = (LED1); LED1 aangezet
anders
P1OUT & = ~ (LED1); LED1 verrekening

if(Value & 0x01)
P1OUT & = ~ (LED0); LED0 aangezet
anders
P1OUT | = (LED0); LED0 verrekening
}

void main (void) {}

unsigned int pomodoro_remain = pomodoro_length + pomodoro_break; teller voor het bijhouden van verstreken tijd

WDTCTL = WDTPW + WDTHOLD; Watchdog-timer om te voorkomen dat de time-out reset stoppen
BCSCTL1 = CALBC1_1MHZ; DCO ingesteld op 1MHz fabriek kalibratie waarde
DCOCTL = CALDCO_1MHZ;

CCTL0 = CCIE; CCR0 interrupt ingeschakeld
CCR0 = 50000; timer IRQ-tarief
TACTL = TASSEL_2 + MC_1; SMCLK, upmode
_BIS_SR(GIE); interrupt inschakelen

P1DIR | = (LED0 + LED1 LED2 + LED3 + LED4 + ZOEMER); alle LED pinnen en zoemer als output
P1OUT & = ~ (LED0 + LED1 LED2 + LED3 + LED4 + ZOEMER); alle LED's en buzzer af

while(pomodoro_remain) {//let's deze lus uitgevoerd totdat de pomodoro is gedaan
if(minutes > new_minute) {//see als we de volgende minuut hebben bereikt
setLEDs(pomodoro_remain); instellen van de LED's aan de huidige minuut
new_minute = minuten; onze teller wijzigen
pomodoro_remain--; minder tijd blijft in onze pomodoro
}
}
while(1) {} //this is het lied dat nooit eindigt, sommige mensen begonnen zingen...
}

Timer A0 interrupt service routine
Dit wordt uitgevoerd wanneer een timer-interrupt wordt geactiveerd
#pragma vector = TIMERA0_VECTOR
void Timer_A (void) {} __interrupt

klikken ++; nieuwe klik elke 1Mhz / 50k = 20 keer een seconds
Als (klikt op > = 2) {//we're met de nummer 2 hier in plaats van 20 en
versnellen foutopsporing
Als (klikt op > = 20) {//waited een volle seconde nog?
Clicks = 0; opnieuw op de teller...
seconden ++; voorschot tweede teller
Als (seconden > = 60) {//see als we hebben gewacht een minuut?
seconden = 0; vervolgens de tweede teller reset
minuten ++; voorschot minuut teller
}
}
}

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