-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.c
53 lines (40 loc) · 892 Bytes
/
main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
* main.c
*
* Created on: Nov 11, 2022
* Author: MSAEED99
*/
// Libraries
#include "STD_TYPES.h"
#include "BIT_MATH.h"
#include <util/delay.h>
// MCAL
#include "DIO_interface.h"
#include "TIMER0_interface.h"
// Macros
#define delay 20
// Lec09_Task03: Using Fast PWM, control DC Motor speed
void main(void)
{
// Timer0 output OC0 (PINB3) (See page 2 in data sheet)
DIO_voidSetPinDirection(DIO_u8PORTB, DIO_u8PIN3, DIO_u8PIN_OUTPUT);
// Initialize Timer0
TIMER0_voidTimer0Init();
// Enable "Global Interrupt Enable"
GIE_voidEnable();
while(1)
{
// Increase DC Motor speed
for(u8 i = 0; i < 255; i++)
{
Timer0_voidSetCompareMatchVal(i);
_delay_ms(delay);
}
// Decrease DC Motor speed
for(u8 i = 0; i < 255; i++)
{
Timer0_voidSetCompareMatchVal(255 - i);
_delay_ms(delay);
}
}
}