Skip to content

2020_2021_deeltoets_2

Harry Broeders edited this page Dec 30, 2022 · 5 revisions

2020-2021 Deeltoets 2

Opgaven

De opgaven kun je vinden op: https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2020-2021_Deeltoets_2.pdf

Uitwerkingen

Toetsvraag 1

#include <msp430.h>

// vraag B:
#pragma vector = TIMER1_A1_VECTOR
__interrupt void ISR_Timer_1(void)
{
    P1OUT ^= BIT5; // toggle pin P1.5
    TA1CTL &= ~TAIFG; // clear interrupt flag

    // vraag C:
    ADC10CTL0 |= ADC10SC; // start conversie
}

// vraag C:
#pragma vector = ADC10_VECTOR
__interrupt void ISR_ADC(void)
{
    float spanning = ADC10MEM * 2.5 / 1023;
    if (spanning > 1.5)
    {
        P1OUT |= BIT7;
    }
    else
    {
        P1OUT &= ~BIT7;
    }
}

int main(void)
{
    WDTCTL = WDTPW | WDTHOLD; // Stop de watchdog timer

    // vraag A:
    P1DIR |= BIT5; // zet pin P1.5 op output
    P1OUT |= BIT5; // maak pin P1.5 hoog

    // vraag B:
    BCSCTL3 |= LFXT1S_2;
    TA1CTL = TASSEL_1 | MC_1 | ID_1 | TAIE; // ACLK, up mode, /2, interrupt aan
    TA1CCR0 = 12000/2/2 - 1; //  (2999) 12000/2 = 6000 Hz clock input TA1 /2 = 0.5 s

    // vraag C:
    P1DIR |= BIT7; // zet pin P1.7 op output
    // Let op! Volgorde is belangrijk:
    ADC10CTL1 = INCH_6 | SHS_0 | ADC10DIV_3 | ADC10SSEL_0 | CONSEQ_0; // A6 = P1.6, gebruik ADC10SC om te starten, /4, ADC10OSC, single-channel-single-conversion
    ADC10CTL0 = SREF_1 | ADC10SHT_1 | REF2_5V | REFON | ADC10ON | ADC10IE | ENC; // VR+ = Vref en VR- = Vss, 8 נADC10CLKs, Vref = 2.5V, ref en ADC en interrupt aan, enable conversion

    // vraag B en C
    __enable_interrupt();

    while (1)
    {
    }

    return 0;
}

Toetsvraag 2 en 3

De antwoorden op toetsvraag 2 en 3 kun je vinden op: https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2020-2021_Deeltoets_2_antwoordblad.pdf

Clone this wiki locally