do fx() while not ready;
do
fx()
while not ready;
if x < LIMIT
make_it();
else
leave_it_alone();
while is_good()
{
for x = 0 ... 9
{
do_this();
do_that();
}
}
6.4
Automatische compiler
Al tijdens de invoer van de brontekst loopt op de achtergrond de syntax –analyse en vertaling door de C2
– compiler. In het resultaat wordt direct in het editor –venster getoond of een programmaregel een fout
vertoont (kruissymbool) of tot een uitvoerbare code leidt (puntsymbool). Het dienovereenkomstige
symbool wordt voor de regel getoond. Lege regels of dergelijke, die niet direct tot een uitvoerbare code
leiden, hebben geen symbool. Als uw invoer fouten bevat, worden er in het meldingsvenster concrete
beschrijvingen van de fouten getoond. Nadat u alle module – bronteksten van een project volledig
geschreven en alle syntax – fouten verholpen heeft, kan uw programma gesimuleerd worden of over-
gebracht worden naar de C-Control II unit.
6.5
Simulatie en debugging
6.5.1
Test en zoeken van fouten
Nadat een programma qua syntax correct gecompileerd is, moet de functionele afwezigheid van fouten
gecontroleerd worden. Het verdient geen aanbeveling de C-Control II unit te laden met een programma,
waarvan de principi le functie niet in de simulator van de geïntegreerde ontwikkelingsomgeving getest is.
Probeer zelf in te schatten welke gevolgen het foutief functioneren van een programma bij gebruik van uw
applicatie kan hebben.
Afgezien van de meest simpele toepassingen, zal een programma zelden meteen zo functioneren als het
in detail gewenst is. Menig foutief functioneren is duidelijk en reproduceerbaar ("steeds als ik op de toets
druk, dan ..."). De oorzaak kan vaak makkelijk gevonden en verholpen worden. Moeilijker is het vinden
van fouten, die alleen in de koppeling van meerdere, voor een deel zeldzame omstandigheden optreden.
("Wekenlang loopt het programma foutloos, dan ...").
Een paar aanbevelingen voor het testen en het zoeken van fouten.
• Er geldt het principe: alles dat niet getest is, zal vroeger of later fouten vertonen – geloof nooit, dat iets
functioneert, maar testen en weten.
• Test een programma niet pas als het volledig opgebouwd is. Zorg er eerst voor dat alle
subprogramma's (threads, functies) correct zijn, voeg de bestanddelen stukje bij beetje samen, en
voer steeds weer tussentijdse tests uit.
• "Voer" uw functies voor een test met alle mogelijke invoerdata, niet alleen met de voor uw toepassing
"normale" waarden. Vroeger of later komt het tot "abnormale" situaties, waaraan u op dit moment
misschien niet denkt.
• Bouw in uw programma statusuitvoeren op het mini – LCD in, ook als uw toepassing het LCD niet
nodig heeft, gebruik vrije digital ports voor de uitvoer van statussignalen. Bekijk het gedrag van uw
programma aan de hand van de statusuitvoeren en –signalen.
• Markeer fouten door het gericht becommentari ren van programmaregels. Gebruik breakpoints, stap -
voor -stap - functie en de controle en weergave van variabelen.
50