-
Notifications
You must be signed in to change notification settings - Fork 0
2024_2025_deeltoets_2
Harry Broeders edited this page Apr 16, 2025
·
1 revision
De opgaven kun je vinden op: https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2024-2025_Deeltoets_2.pdf
#include <msp430.h>
// Vraag 1C:
#pragma vector = PORT1_VECTOR
__interrupt void port1_isr(void)
{
if ((P1IFG & BIT4) != 0) // S0
{
P1OUT &= ~BIT6;
P1IFG &= ~BIT4; // clear interrupt flag
}
if ((P1IFG & BIT5) != 0) // S1
{
P1OUT |= BIT6;
P1IFG &= ~BIT5; // clear interrupt flag
}
}
int main()
{
WDTCTL = WDTPW | WDTHOLD; // Stop de watchdog timer
// Vraag 1A
DCOCTL = 0;
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
// Vraag 1B
P1DIR |= BIT6;
P1OUT |= BIT6;
// Vraag 1C
P1REN = BIT5 | BIT4;
P1OUT |= BIT5 | BIT4;
P1IE = BIT5 | BIT4;
P1IES = BIT5 | BIT4;
P1IFG = 0;
__enable_interrupt();
// Vraag 1E
P2DIR |= BIT5;
P2SEL |= 1<<5;
P2SEL2 &= ~(1<<5); // P2.5 = TA1.2
BCSCTL3 = LFXT1S_2;
// Timer 1 use ACLK, up mode en input divider = 1
TA1CTL = TASSEL_1 | ID_0 | MC_1;
// Periodetijd = 1 / 0.5 = 2 s
TA1CCR0 = (2 * 12000) - 1; // 23999
// Output Mode 3: Set/Reset
TA1CCTL2 = OUTMOD_3;
// 25% hoog ==> 75% laag
TA1CCR2 = (2 * 12000) * 0.75; // 18000 niet -1
while(1)
{
}
}De antwoorden op toetsvraag 2 kun je vinden op: https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2024-2025_Deeltoets_2_antwoorden.pdf