Skip to content

2022_2023_deeltoets_2

Harry Broeders edited this page Apr 4, 2023 · 1 revision

2022-2023 Deeltoets 2

Opgaven

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

Uitwerkingen

Toetsvragen 1 en 2

#include <msp430.h>

//  Vraag 1D
#pragma vector = TIMER1_A1_VECTOR
__interrupt void ISR(void)
{
//  Vraag 1E
    if ((P1IN & BIT6) != 0)
    {
        P1OUT ^= BIT0;
    }
    TA1CTL &= ~TAIFG;
}

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

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

//  Vraag 1B
    P1DIR |= BIT7;
    P1OUT |= BIT7;

//  Vraag 1C
    P1DIR &= ~BIT6;
    P1REN |= BIT6;
    P1OUT |= BIT6;
    while ((P1IN & BIT6) != 0)
    {
        // wacht tot knop wordt ingedrukt
    }
    P1OUT &= ~BIT7;
    // pas op P1OUT = 0 gaat niet goed omdat dan de pull-up wordt verwijderd, dat geeft problemen bij vraag 1E

//  Vraag 1D
    P1DIR |= BIT0;
    TA1CTL = TASSEL_2 | ID_3 | MC_1 | TAIE;
    TA1CCR0 = 31249; // ((1000000 / 8) * 0.25) - 1
    __enable_interrupt();

//  Vraag 2A
    // We volgen de instructies uit de Family User's Guide paragraaf 15.3.1.
    // 1. Set UCSWRST
    UCA0CTL1 |= UCSWRST;
    // 2. Initialize all USCI registers with UCSWRST = 1 (including UCAxCTL1)
    // Parity disabled, LSB first, 8-bit data, One stop bit, UART mode, Asynchronous mode
    UCA0CTL0 = 0;
    // USCI clock source select = SMCLK
    UCA0CTL1 = UCSSEL_2 | UCSWRST;
    // Baudrate = 19200 zie paragraaf 15.3.13 in Family User's Guide.
    // Oversampling mode enabled
    UCA0BR0 = 3;
    UCA0BR1 = 0;
    UCA0MCTL = UCBRS_0 | UCBRF_4 | UCOS16;
    // 3. Configure ports.
    P1SEL |= BIT2 | BIT1;
    P1SEL2 |= BIT2 | BIT1;
    // 4. Clear UCSWRST via software
    UCA0CTL1 &= ~UCSWRST;

    while (1)
    {
        while ((IFG2 & UCA0RXIFG) == 0)
        {
            // wacht op ontvangst karakter
        }
        char c = UCA0RXBUF;
        if (c == 'A')
        {
            P1OUT |= BIT7;
        }
        else if (c == 'U')
        {
            P1OUT &= ~BIT7;
        }
    }
}

Toetsvraag 3

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

Clone this wiki locally