Wiki

Clone wiki

EMS10 / 2023_2024_deeltoets_2

2023-2024 Deeltoets 2

Opgaven

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

Uitwerkingen

Toetsvraag 1

#include <msp430.h>

// Vraag 1F
#pragma vector = ADC10_VECTOR
__interrupt void adc10isr(void)
{
    int adc = ADC10MEM;
    // 1023 * 1/3,3 = 310
    if (adc >= 310)
    {
        P1OUT |= BIT2;
    }
    else
    {
        P1OUT &= ~BIT2;
    }

    // Vlag resetten niet nodig.
}

// Vraag 1D
#pragma vector = TIMER0_A1_VECTOR
__interrupt void ISR(void)
{
    P1OUT ^= BIT1; // Led inverteren
    TA0CTL &= ~TAIFG; // Vlag resetten

    // Vraag 1F
    ADC10CTL0 |= ADC10SC;
}

// Vraag 1C
int knop_is_ingedrukt(void)
{
    return (P1IN & BIT3) == 0;
}

void zet_groene_led_aan(void)
{
    P1OUT |= BIT0;
}

void zet_groene_led_uit(void)
{
    P1OUT &= ~BIT0;
}

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

//  Vraag 1A
    DCOCTL = 0;
    BCSCTL1 = CALBC1_1MHZ;
    DCOCTL = CALDCO_1MHZ;

//  Vraag 1B
    P1DIR |= BIT0 | BIT1 | BIT2; // Pin 1.0, 1.1 en 1.2 output (LEDs)

    P1DIR &= BIT3; // Pin 1.3 input (knopje)
    P1REN |= BIT3; // Pin 1.3 weerstand aan
    P1OUT |= BIT3; // Pull up op pin 1.3

    P1OUT &= ~(BIT0 | BIT1 | BIT2) // leds uit

//  Vraag 1D
    // Timer_A0: SMCLK input, divider van /4, Up mode, Interrupt Enable
    TA0CTL = TASSEL_2 | ID_2 | MC_1 | TAIE;
    TA0CCR0 = 25000 - 1; // ((1000000 / 4) * 0.1) - 1

//  Vraag 1E
    // Analoge input pin 1.4, start met ADC10SC bit, SMCLK, clock divider /1
    ADC10CTL1 = INCH_4 | SHS_0 | ADC10DIV_0 | ADC10SSEL_3;
    // ADC Vref = Vcc, ADC10 sample-and-hold time = 64, Reference generator uit, ADC10ON, interrupt aan, ADC10SR mag aan maar hoeft niet
    ADC10CTL0 = SREF_0 | ADC10SHT_3 | ADC10SR | ADC10ON | ADC10IE | ENC;

//  Vraag 1D (maar ook nodig voor 1F)
    __enable_interrupt();

//  Vraag 1C
    while (1)
    {
        if (knop_is_ingedrukt())
        {
            zet_groene_led_aan();
        }
        else
        {
            zet_groene_led_uit();
        }
    }
}

Toetsvraag 2

De antwoorden op toetsvraag 2 kun je vinden op: https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2023-2024_Deeltoets_2_antwoorden.pdf

Updated