added 3.2
This commit is contained in:
@@ -23,6 +23,8 @@ Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "opdracht 2.5", "opdracht 2.
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "testlcd", "testlcd\testlcd.cproj", "{B964892D-A92F-44D4-AF99-3ADC61820917}"
|
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "testlcd", "testlcd\testlcd.cproj", "{B964892D-A92F-44D4-AF99-3ADC61820917}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "opdracht 3.2", "opdracht 3.2\opdracht 3.2.cproj", "{EB7415C6-2130-46AD-9842-612C67ADE6D4}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|AVR = Debug|AVR
|
Debug|AVR = Debug|AVR
|
||||||
@@ -69,6 +71,10 @@ Global
|
|||||||
{B964892D-A92F-44D4-AF99-3ADC61820917}.Debug|AVR.Build.0 = Debug|AVR
|
{B964892D-A92F-44D4-AF99-3ADC61820917}.Debug|AVR.Build.0 = Debug|AVR
|
||||||
{B964892D-A92F-44D4-AF99-3ADC61820917}.Release|AVR.ActiveCfg = Release|AVR
|
{B964892D-A92F-44D4-AF99-3ADC61820917}.Release|AVR.ActiveCfg = Release|AVR
|
||||||
{B964892D-A92F-44D4-AF99-3ADC61820917}.Release|AVR.Build.0 = Release|AVR
|
{B964892D-A92F-44D4-AF99-3ADC61820917}.Release|AVR.Build.0 = Release|AVR
|
||||||
|
{EB7415C6-2130-46AD-9842-612C67ADE6D4}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||||
|
{EB7415C6-2130-46AD-9842-612C67ADE6D4}.Debug|AVR.Build.0 = Debug|AVR
|
||||||
|
{EB7415C6-2130-46AD-9842-612C67ADE6D4}.Release|AVR.ActiveCfg = Release|AVR
|
||||||
|
{EB7415C6-2130-46AD-9842-612C67ADE6D4}.Release|AVR.Build.0 = Release|AVR
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -64,42 +64,3 @@ int main(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_strobe_lcd_e(void) {
|
|
||||||
PORTC |= (1<<LCD_E); // E high
|
|
||||||
_delay_ms(1);
|
|
||||||
PORTC &= ~(1<<LCD_E); // E low
|
|
||||||
}
|
|
||||||
|
|
||||||
void init_4bits_mode(void) {
|
|
||||||
// PORTC output mode and all low (also E and RS pin)
|
|
||||||
DDRC = 0xFF;
|
|
||||||
PORTC = 0x00;
|
|
||||||
|
|
||||||
PORTC = 0x20; // (0x28 for 2 lines)
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
}
|
|
||||||
|
|
||||||
void init_4bits_mode(void) {
|
|
||||||
|
|
||||||
// PORTC output mode and all low (also E and RS pin)
|
|
||||||
DDRC = 0xFF;
|
|
||||||
PORTC = 0x00;
|
|
||||||
|
|
||||||
PORTC = 0x20; // function for 4-bit 1 row
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
PORTC = 0x20; // function high nibble 4-bit 2 row
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
PORTC = 0x80; // function low nibble 4-bit 2 row
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
PORTC = 0x00; // function high nibble turn on visible blinking-block cursor
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
PORTC = 0xF0; // function low nibble turn on visible blinking-block cursor
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
PORTC = 0x00; // Entry mode set high nibble
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
PORTC = 0x60; // Entry mode set low nibble
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
}
|
|
||||||
@@ -37,6 +37,7 @@ SUBDIRS :=
|
|||||||
|
|
||||||
# Add inputs and outputs from these tool invocations to the build variables
|
# Add inputs and outputs from these tool invocations to the build variables
|
||||||
C_SRCS += \
|
C_SRCS += \
|
||||||
|
../lcd_control.c \
|
||||||
../main.c
|
../main.c
|
||||||
|
|
||||||
|
|
||||||
@@ -47,15 +48,19 @@ ASM_SRCS +=
|
|||||||
|
|
||||||
|
|
||||||
OBJS += \
|
OBJS += \
|
||||||
|
lcd_control.o \
|
||||||
main.o
|
main.o
|
||||||
|
|
||||||
OBJS_AS_ARGS += \
|
OBJS_AS_ARGS += \
|
||||||
|
lcd_control.o \
|
||||||
main.o
|
main.o
|
||||||
|
|
||||||
C_DEPS += \
|
C_DEPS += \
|
||||||
|
lcd_control.d \
|
||||||
main.d
|
main.d
|
||||||
|
|
||||||
C_DEPS_AS_ARGS += \
|
C_DEPS_AS_ARGS += \
|
||||||
|
lcd_control.d \
|
||||||
main.d
|
main.d
|
||||||
|
|
||||||
OUTPUT_FILE_PATH +=opdracht\ 2.5.elf
|
OUTPUT_FILE_PATH +=opdracht\ 2.5.elf
|
||||||
@@ -72,6 +77,13 @@ LINKER_SCRIPT_DEP+=
|
|||||||
|
|
||||||
|
|
||||||
# AVR32/GNU C Compiler
|
# AVR32/GNU C Compiler
|
||||||
|
./lcd_control.o: .././lcd_control.c
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: XC8 C Compiler : 2.31
|
||||||
|
$(QUOTE)C:\Program Files\Microchip\xc8\v2.31\bin\xc8-cc.exe$(QUOTE) -mcpu=ATmega128 -mdfp="C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\xc8" -c -x c -funsigned-char -funsigned-bitfields -mext=cci -D__ATmega128__ -DDEBUG -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
./main.o: .././main.c
|
./main.o: .././main.c
|
||||||
@echo Building file: $<
|
@echo Building file: $<
|
||||||
@echo Invoking: XC8 C Compiler : 2.31
|
@echo Invoking: XC8 C Compiler : 2.31
|
||||||
|
|||||||
@@ -2,5 +2,7 @@
|
|||||||
# Automatically-generated file. Do not edit or delete the file
|
# Automatically-generated file. Do not edit or delete the file
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
lcd_control.c
|
||||||
|
|
||||||
main.c
|
main.c
|
||||||
|
|
||||||
|
|||||||
@@ -9,25 +9,25 @@ Idx Name Size VMA LMA File off Algn
|
|||||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||||
2 .comment 0000002f 00000000 00000000 00000274 2**0
|
2 .comment 0000002f 00000000 00000000 00000274 2**0
|
||||||
CONTENTS, READONLY
|
CONTENTS, READONLY
|
||||||
3 .debug_aranges 00000078 00000000 00000000 000002a3 2**0
|
3 .debug_aranges 00000090 00000000 00000000 000002a3 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
4 .debug_info 00000ed8 00000000 00000000 0000031b 2**0
|
4 .debug_info 000011bb 00000000 00000000 00000333 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
5 .debug_abbrev 00000890 00000000 00000000 000011f3 2**0
|
5 .debug_abbrev 0000095a 00000000 00000000 000014ee 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
6 .debug_line 00000463 00000000 00000000 00001a83 2**0
|
6 .debug_line 00000526 00000000 00000000 00001e48 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
7 .debug_frame 000000fc 00000000 00000000 00001ee8 2**2
|
7 .debug_frame 00000110 00000000 00000000 00002370 2**2
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
8 .debug_str 00000283 00000000 00000000 00001fe4 2**0
|
8 .debug_str 000002ae 00000000 00000000 00002480 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
9 .debug_loc 00000242 00000000 00000000 00002267 2**0
|
9 .debug_loc 00000242 00000000 00000000 0000272e 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
10 .debug_ranges 00000068 00000000 00000000 000024a9 2**0
|
10 .debug_ranges 00000070 00000000 00000000 00002970 2**0
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
11 .text 00000004 0000021c 0000021c 00000270 2**1
|
11 .text 00000004 0000021c 0000021c 00000270 2**1
|
||||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||||
12 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00002514 2**2
|
12 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000029e0 2**2
|
||||||
CONTENTS, READONLY, DEBUGGING
|
CONTENTS, READONLY, DEBUGGING
|
||||||
13 .text.sbi_porta 00000016 000001f8 000001f8 0000024c 2**1
|
13 .text.sbi_porta 00000016 000001f8 000001f8 0000024c 2**1
|
||||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||||
@@ -110,7 +110,7 @@ Disassembly of section .text:
|
|||||||
Disassembly of section .text:
|
Disassembly of section .text:
|
||||||
|
|
||||||
0000021c <__bad_interrupt>:
|
0000021c <__bad_interrupt>:
|
||||||
21c: 0c 94 00 00 jmp 0 ; 0x0 <__TEXT_REGION_ORIGIN__>
|
21c: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
|
||||||
|
|
||||||
Disassembly of section .text.sbi_porta:
|
Disassembly of section .text.sbi_porta:
|
||||||
|
|
||||||
@@ -161,8 +161,8 @@ Disassembly of section .text.lcd_strobe_lcd_e:
|
|||||||
12c: 86 e0 ldi r24, 0x06 ; 6
|
12c: 86 e0 ldi r24, 0x06 ; 6
|
||||||
12e: 90 e0 ldi r25, 0x00 ; 0
|
12e: 90 e0 ldi r25, 0x00 ; 0
|
||||||
130: 0e 94 fc 00 call 0x1f8 ; 0x1f8 <sbi_porta>
|
130: 0e 94 fc 00 call 0x1f8 ; 0x1f8 <sbi_porta>
|
||||||
134: 83 ec ldi r24, 0xC3 ; 195
|
134: 89 ef ldi r24, 0xF9 ; 249
|
||||||
136: 99 e0 ldi r25, 0x09 ; 9
|
136: 90 e0 ldi r25, 0x00 ; 0
|
||||||
138: 01 97 sbiw r24, 0x01 ; 1
|
138: 01 97 sbiw r24, 0x01 ; 1
|
||||||
13a: f1 f7 brne .-4 ; 0x138 <lcd_strobe_lcd_e+0xc>
|
13a: f1 f7 brne .-4 ; 0x138 <lcd_strobe_lcd_e+0xc>
|
||||||
13c: 00 c0 rjmp .+0 ; 0x13e <lcd_strobe_lcd_e+0x12>
|
13c: 00 c0 rjmp .+0 ; 0x13e <lcd_strobe_lcd_e+0x12>
|
||||||
@@ -170,8 +170,8 @@ Disassembly of section .text.lcd_strobe_lcd_e:
|
|||||||
140: 86 e0 ldi r24, 0x06 ; 6
|
140: 86 e0 ldi r24, 0x06 ; 6
|
||||||
142: 90 e0 ldi r25, 0x00 ; 0
|
142: 90 e0 ldi r25, 0x00 ; 0
|
||||||
144: 0e 94 f0 00 call 0x1e0 ; 0x1e0 <cbi_porta>
|
144: 0e 94 f0 00 call 0x1e0 ; 0x1e0 <cbi_porta>
|
||||||
148: 83 ec ldi r24, 0xC3 ; 195
|
148: 89 ef ldi r24, 0xF9 ; 249
|
||||||
14a: 99 e0 ldi r25, 0x09 ; 9
|
14a: 90 e0 ldi r25, 0x00 ; 0
|
||||||
14c: 01 97 sbiw r24, 0x01 ; 1
|
14c: 01 97 sbiw r24, 0x01 ; 1
|
||||||
14e: f1 f7 brne .-4 ; 0x14c <lcd_strobe_lcd_e+0x20>
|
14e: f1 f7 brne .-4 ; 0x14c <lcd_strobe_lcd_e+0x20>
|
||||||
150: 00 c0 rjmp .+0 ; 0x152 <lcd_strobe_lcd_e+0x26>
|
150: 00 c0 rjmp .+0 ; 0x152 <lcd_strobe_lcd_e+0x26>
|
||||||
@@ -223,8 +223,8 @@ Disassembly of section .text.lcd_clear:
|
|||||||
000001c6 <lcd_clear>:
|
000001c6 <lcd_clear>:
|
||||||
1c6: 81 e0 ldi r24, 0x01 ; 1
|
1c6: 81 e0 ldi r24, 0x01 ; 1
|
||||||
1c8: 0e 94 bf 00 call 0x17e ; 0x17e <lcd_write_command>
|
1c8: 0e 94 bf 00 call 0x17e ; 0x17e <lcd_write_command>
|
||||||
1cc: 87 e8 ldi r24, 0x87 ; 135
|
1cc: 83 ef ldi r24, 0xF3 ; 243
|
||||||
1ce: 93 e1 ldi r25, 0x13 ; 19
|
1ce: 91 e0 ldi r25, 0x01 ; 1
|
||||||
1d0: 01 97 sbiw r24, 0x01 ; 1
|
1d0: 01 97 sbiw r24, 0x01 ; 1
|
||||||
1d2: f1 f7 brne .-4 ; 0x1d0 <lcd_clear+0xa>
|
1d2: f1 f7 brne .-4 ; 0x1d0 <lcd_clear+0xa>
|
||||||
1d4: 00 c0 rjmp .+0 ; 0x1d6 <lcd_clear+0x10>
|
1d4: 00 c0 rjmp .+0 ; 0x1d6 <lcd_clear+0x10>
|
||||||
@@ -296,14 +296,33 @@ Disassembly of section .text.lcd_write_string:
|
|||||||
Disassembly of section .text.main:
|
Disassembly of section .text.main:
|
||||||
|
|
||||||
000001a6 <main>:
|
000001a6 <main>:
|
||||||
|
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
init_4bits_mode();
|
||||||
1a6: 0e 94 57 00 call 0xae ; 0xae <init_4bits_mode>
|
1a6: 0e 94 57 00 call 0xae ; 0xae <init_4bits_mode>
|
||||||
|
#else
|
||||||
|
//round up by default
|
||||||
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
__builtin_avr_delay_cycles(__ticks_dc);
|
||||||
1aa: 87 ea ldi r24, 0xA7 ; 167
|
1aa: 87 ea ldi r24, 0xA7 ; 167
|
||||||
1ac: 91 e6 ldi r25, 0x61 ; 97
|
1ac: 91 e6 ldi r25, 0x61 ; 97
|
||||||
1ae: 01 97 sbiw r24, 0x01 ; 1
|
1ae: 01 97 sbiw r24, 0x01 ; 1
|
||||||
1b0: f1 f7 brne .-4 ; 0x1ae <main+0x8>
|
1b0: f1 f7 brne .-4 ; 0x1ae <main+0x8>
|
||||||
1b2: 00 c0 rjmp .+0 ; 0x1b4 <main+0xe>
|
1b2: 00 c0 rjmp .+0 ; 0x1b4 <main+0xe>
|
||||||
1b4: 00 00 nop
|
1b4: 00 00 nop
|
||||||
|
|
||||||
|
|
||||||
|
_delay_ms(10);
|
||||||
|
|
||||||
|
lcd_clear();
|
||||||
1b6: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <lcd_clear>
|
1b6: 0e 94 e3 00 call 0x1c6 ; 0x1c6 <lcd_clear>
|
||||||
|
|
||||||
|
lcd_write_string("Pintebaas");
|
||||||
1ba: 64 ea ldi r22, 0xA4 ; 164
|
1ba: 64 ea ldi r22, 0xA4 ; 164
|
||||||
1bc: 70 e0 ldi r23, 0x00 ; 0
|
1bc: 70 e0 ldi r23, 0x00 ; 0
|
||||||
1be: 80 e0 ldi r24, 0x00 ; 0
|
1be: 80 e0 ldi r24, 0x00 ; 0
|
||||||
|
|||||||
123
Microcontrollers/opdracht 2.5/lcd_control.c
Normal file
123
Microcontrollers/opdracht 2.5/lcd_control.c
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
/*
|
||||||
|
* lcd_controlc.c
|
||||||
|
*
|
||||||
|
* Created: 24-2-2021 11:55:12
|
||||||
|
* Author: Sem
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include "lcd_control.h"
|
||||||
|
|
||||||
|
void _delay_ms(double __ms);
|
||||||
|
|
||||||
|
void lcd_clear() {
|
||||||
|
lcd_write_command (0x01); //Leeg display
|
||||||
|
_delay_ms(2);
|
||||||
|
lcd_write_command (0x80); //Cursor terug naar start
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_strobe_lcd_e(void) {
|
||||||
|
|
||||||
|
sbi_porta(LCD_E); // E high
|
||||||
|
_delay_ms(1);
|
||||||
|
cbi_porta(LCD_E); // E low
|
||||||
|
_delay_ms(1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void sbi_portc(int index){
|
||||||
|
PORTC |= (1<<index);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void cbi_portc(int index){
|
||||||
|
PORTC &= ~(1<<index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sbi_porta(int index){
|
||||||
|
PORTA |= (1<<index);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void cbi_porta(int index){
|
||||||
|
PORTA &= ~(1<<index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_4bits_mode(void) {
|
||||||
|
|
||||||
|
// PORTC output mode and all low (also E and RS pin)
|
||||||
|
|
||||||
|
// Init I/O
|
||||||
|
DDRC = 0xFF; // PORTD(7) output, PORTD(6:0) input
|
||||||
|
PORTC = 0xFF;
|
||||||
|
|
||||||
|
DDRD = 0xFF;
|
||||||
|
DDRA = 0xFF;
|
||||||
|
PORTC = 0x00;
|
||||||
|
PORTA = 0x00;
|
||||||
|
|
||||||
|
PORTC = 0x20; // function for 4-bit 1 row
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
PORTC = 0x20; // function high nibble 4-bit 2 row
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
PORTC = 0x80; // function low nibble 4-bit 2 row
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
PORTC = 0x00; // function high nibble turn on visible blinking-block cursor
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
PORTC = 0xF0; // function low nibble turn on visible blinking-block cursor
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
PORTC = 0x00; // Entry mode set high nibble
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
PORTC = 0x60; // Entry mode set low nibble
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
// return home
|
||||||
|
lcd_write_command(0x02);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_write_character(unsigned char byte){
|
||||||
|
|
||||||
|
|
||||||
|
//upper nibble
|
||||||
|
PORTC = byte;
|
||||||
|
sbi_porta(LCD_RS);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
//lower nibble
|
||||||
|
PORTC = (byte<<4);
|
||||||
|
sbi_porta(LCD_RS);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_write_command(unsigned char byte){
|
||||||
|
|
||||||
|
//upper nibble
|
||||||
|
PORTC = byte;
|
||||||
|
cbi_porta(LCD_RS);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
//lower nibble
|
||||||
|
PORTC = (byte<<4);
|
||||||
|
cbi_porta(LCD_RS);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_write_string(const char *str) {
|
||||||
|
|
||||||
|
for(;*str; str++){
|
||||||
|
lcd_write_character(*str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_move_right(void){
|
||||||
|
|
||||||
|
lcd_write_command(0x1E);
|
||||||
|
}
|
||||||
29
Microcontrollers/opdracht 2.5/lcd_control.h
Normal file
29
Microcontrollers/opdracht 2.5/lcd_control.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* lcd_control.h
|
||||||
|
*
|
||||||
|
* Created: 24-2-2021 11:56:16
|
||||||
|
* Author: Sem
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LCD_CONTROL_H_
|
||||||
|
#define LCD_CONTROL_H_
|
||||||
|
|
||||||
|
#define LCD_E 6
|
||||||
|
#define LCD_RS 4
|
||||||
|
|
||||||
|
void _delay_ms(double __ms);
|
||||||
|
void lcd_strobe_lcd_e(void);
|
||||||
|
void sbi_portc(int index);
|
||||||
|
void cbi_portc(int index);
|
||||||
|
void sbi_porta(int index);
|
||||||
|
void cbi_porta(int index);
|
||||||
|
void init_4bits_mode(void);
|
||||||
|
void lcd_write_string(const char *str);
|
||||||
|
void lcd_write_character(unsigned char byte);
|
||||||
|
void lcd_write_command(unsigned char byte);
|
||||||
|
void lcd_clear();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* LCD_CONTROL_H_ */
|
||||||
@@ -11,21 +11,8 @@
|
|||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
#include <util/delay.h>
|
#include <util/delay.h>
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
|
#include "lcd_control.h"
|
||||||
|
|
||||||
#define LCD_E 6
|
|
||||||
#define LCD_RS 4
|
|
||||||
|
|
||||||
void _delay_ms(double __ms);
|
|
||||||
void lcd_strobe_lcd_e(void);
|
|
||||||
void sbi_portc(int index);
|
|
||||||
void cbi_portc(int index);
|
|
||||||
void sbi_porta(int index);
|
|
||||||
void cbi_porta(int index);
|
|
||||||
void init_4bits_mode(void);
|
|
||||||
void lcd_write_string(const char *str);
|
|
||||||
void lcd_write_character(unsigned char byte);
|
|
||||||
void lcd_write_command(unsigned char byte);
|
|
||||||
void lcd_clear();
|
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
@@ -46,112 +33,3 @@ int main(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_clear() {
|
|
||||||
lcd_write_command (0x01); //Leeg display
|
|
||||||
_delay_ms(2);
|
|
||||||
lcd_write_command (0x80); //Cursor terug naar start
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcd_strobe_lcd_e(void) {
|
|
||||||
|
|
||||||
sbi_porta(LCD_E); // E high
|
|
||||||
_delay_ms(1);
|
|
||||||
cbi_porta(LCD_E); // E low
|
|
||||||
_delay_ms(1);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void sbi_portc(int index){
|
|
||||||
PORTC |= (1<<index);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void cbi_portc(int index){
|
|
||||||
PORTC &= ~(1<<index);
|
|
||||||
}
|
|
||||||
|
|
||||||
void sbi_porta(int index){
|
|
||||||
PORTA |= (1<<index);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void cbi_porta(int index){
|
|
||||||
PORTA &= ~(1<<index);
|
|
||||||
}
|
|
||||||
|
|
||||||
void init_4bits_mode(void) {
|
|
||||||
|
|
||||||
// PORTC output mode and all low (also E and RS pin)
|
|
||||||
|
|
||||||
// Init I/O
|
|
||||||
DDRC = 0xFF; // PORTD(7) output, PORTD(6:0) input
|
|
||||||
PORTC = 0xFF;
|
|
||||||
|
|
||||||
DDRD = 0xFF;
|
|
||||||
DDRA = 0xFF;
|
|
||||||
PORTC = 0x00;
|
|
||||||
PORTA = 0x00;
|
|
||||||
|
|
||||||
PORTC = 0x20; // function for 4-bit 1 row
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
PORTC = 0x20; // function high nibble 4-bit 2 row
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
PORTC = 0x80; // function low nibble 4-bit 2 row
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
PORTC = 0x00; // function high nibble turn on visible blinking-block cursor
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
PORTC = 0xF0; // function low nibble turn on visible blinking-block cursor
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
PORTC = 0x00; // Entry mode set high nibble
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
PORTC = 0x60; // Entry mode set low nibble
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
// return home
|
|
||||||
lcd_write_command(0x02);
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcd_write_character(unsigned char byte){
|
|
||||||
|
|
||||||
|
|
||||||
//upper nibble
|
|
||||||
PORTC = byte;
|
|
||||||
sbi_porta(LCD_RS);
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
//lower nibble
|
|
||||||
PORTC = (byte<<4);
|
|
||||||
sbi_porta(LCD_RS);
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcd_write_command(unsigned char byte){
|
|
||||||
|
|
||||||
//upper nibble
|
|
||||||
PORTC = byte;
|
|
||||||
cbi_porta(LCD_RS);
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
//lower nibble
|
|
||||||
PORTC = (byte<<4);
|
|
||||||
cbi_porta(LCD_RS);
|
|
||||||
lcd_strobe_lcd_e();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcd_write_string(const char *str) {
|
|
||||||
|
|
||||||
for(;*str; str++){
|
|
||||||
lcd_write_character(*str);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcd_move_right(void){
|
|
||||||
|
|
||||||
lcd_write_command(0x1E);
|
|
||||||
}
|
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.49.1" />
|
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.49.1" />
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</framework-data>
|
</framework-data>
|
||||||
</AsfFrameworkConfig>
|
</AsfFrameworkConfig>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
<Value>libm</Value>
|
<Value>libm</Value>
|
||||||
</ListValues>
|
</ListValues>
|
||||||
</com.microchip.xc8.linker.libraries.Libraries>
|
</com.microchip.xc8.linker.libraries.Libraries>
|
||||||
</com.microchip.xc8>
|
</com.microchip.xc8>
|
||||||
</ToolchainSettings>
|
</ToolchainSettings>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||||
@@ -87,10 +87,16 @@
|
|||||||
</ListValues>
|
</ListValues>
|
||||||
</com.microchip.xc8.linker.libraries.Libraries>
|
</com.microchip.xc8.linker.libraries.Libraries>
|
||||||
<com.microchip.xc8.assembler.debugging.DebugLevel>Default (-Wa,-g)</com.microchip.xc8.assembler.debugging.DebugLevel>
|
<com.microchip.xc8.assembler.debugging.DebugLevel>Default (-Wa,-g)</com.microchip.xc8.assembler.debugging.DebugLevel>
|
||||||
</com.microchip.xc8>
|
</com.microchip.xc8>
|
||||||
</ToolchainSettings>
|
</ToolchainSettings>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="lcd_control.c">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lcd_control.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="main.c">
|
<Compile Include="main.c">
|
||||||
<SubType>compile</SubType>
|
<SubType>compile</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|||||||
139
Microcontrollers/opdracht 3.2/Debug/Makefile
Normal file
139
Microcontrollers/opdracht 3.2/Debug/Makefile
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
################################################################################
|
||||||
|
# Automatically-generated file. Do not edit!
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
SHELL := cmd.exe
|
||||||
|
RM := rm -rf
|
||||||
|
|
||||||
|
USER_OBJS :=
|
||||||
|
|
||||||
|
LIBS :=
|
||||||
|
PROJ :=
|
||||||
|
|
||||||
|
O_SRCS :=
|
||||||
|
C_SRCS :=
|
||||||
|
S_SRCS :=
|
||||||
|
S_UPPER_SRCS :=
|
||||||
|
OBJ_SRCS :=
|
||||||
|
ASM_SRCS :=
|
||||||
|
PREPROCESSING_SRCS :=
|
||||||
|
OBJS :=
|
||||||
|
OBJS_AS_ARGS :=
|
||||||
|
C_DEPS :=
|
||||||
|
C_DEPS_AS_ARGS :=
|
||||||
|
EXECUTABLES :=
|
||||||
|
OUTPUT_FILE_PATH :=
|
||||||
|
OUTPUT_FILE_PATH_AS_ARGS :=
|
||||||
|
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
|
||||||
|
QUOTE := "
|
||||||
|
ADDITIONAL_DEPENDENCIES:=
|
||||||
|
OUTPUT_FILE_DEP:=
|
||||||
|
LIB_DEP:=
|
||||||
|
LINKER_SCRIPT_DEP:=
|
||||||
|
|
||||||
|
# Every subdirectory with source files must be described here
|
||||||
|
SUBDIRS :=
|
||||||
|
|
||||||
|
|
||||||
|
# Add inputs and outputs from these tool invocations to the build variables
|
||||||
|
C_SRCS += \
|
||||||
|
../lcd_control.c \
|
||||||
|
../main.c
|
||||||
|
|
||||||
|
|
||||||
|
PREPROCESSING_SRCS +=
|
||||||
|
|
||||||
|
|
||||||
|
ASM_SRCS +=
|
||||||
|
|
||||||
|
|
||||||
|
OBJS += \
|
||||||
|
lcd_control.o \
|
||||||
|
main.o
|
||||||
|
|
||||||
|
OBJS_AS_ARGS += \
|
||||||
|
lcd_control.o \
|
||||||
|
main.o
|
||||||
|
|
||||||
|
C_DEPS += \
|
||||||
|
lcd_control.d \
|
||||||
|
main.d
|
||||||
|
|
||||||
|
C_DEPS_AS_ARGS += \
|
||||||
|
lcd_control.d \
|
||||||
|
main.d
|
||||||
|
|
||||||
|
OUTPUT_FILE_PATH +=opdracht\ 3.2.elf
|
||||||
|
|
||||||
|
OUTPUT_FILE_PATH_AS_ARGS +="opdracht 3.2.elf"
|
||||||
|
|
||||||
|
ADDITIONAL_DEPENDENCIES:=
|
||||||
|
|
||||||
|
OUTPUT_FILE_DEP:= ./makedep.mk
|
||||||
|
|
||||||
|
LIB_DEP+=
|
||||||
|
|
||||||
|
LINKER_SCRIPT_DEP+=
|
||||||
|
|
||||||
|
|
||||||
|
# AVR32/GNU C Compiler
|
||||||
|
./lcd_control.o: .././lcd_control.c
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
./main.o: .././main.c
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AVR32/GNU Preprocessing Assembler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AVR32/GNU Assembler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
-include $(C_DEPS)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Add inputs and outputs from these tool invocations to the build variables
|
||||||
|
|
||||||
|
# All Target
|
||||||
|
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
|
||||||
|
|
||||||
|
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
|
||||||
|
@echo Building target: $@
|
||||||
|
@echo Invoking: AVR/GNU Linker : 5.4.0
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="opdracht 3.2.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128"
|
||||||
|
@echo Finished building target: $@
|
||||||
|
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "opdracht 3.2.elf" "opdracht 3.2.hex"
|
||||||
|
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "opdracht 3.2.elf" "opdracht 3.2.eep" || exit 0
|
||||||
|
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "opdracht 3.2.elf" > "opdracht 3.2.lss"
|
||||||
|
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "opdracht 3.2.elf" "opdracht 3.2.srec"
|
||||||
|
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "opdracht 3.2.elf"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Other Targets
|
||||||
|
clean:
|
||||||
|
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
|
||||||
|
-$(RM) $(C_DEPS_AS_ARGS)
|
||||||
|
rm -rf "opdracht 3.2.elf" "opdracht 3.2.a" "opdracht 3.2.hex" "opdracht 3.2.lss" "opdracht 3.2.eep" "opdracht 3.2.map" "opdracht 3.2.srec" "opdracht 3.2.usersignatures"
|
||||||
|
|
||||||
8
Microcontrollers/opdracht 3.2/Debug/makedep.mk
Normal file
8
Microcontrollers/opdracht 3.2/Debug/makedep.mk
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
################################################################################
|
||||||
|
# Automatically-generated file. Do not edit or delete the file
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
lcd_control.c
|
||||||
|
|
||||||
|
main.c
|
||||||
|
|
||||||
1
Microcontrollers/opdracht 3.2/Debug/opdracht 3.2.eep
Normal file
1
Microcontrollers/opdracht 3.2/Debug/opdracht 3.2.eep
Normal file
@@ -0,0 +1 @@
|
|||||||
|
:00000001FF
|
||||||
1566
Microcontrollers/opdracht 3.2/Debug/opdracht 3.2.lss
Normal file
1566
Microcontrollers/opdracht 3.2/Debug/opdracht 3.2.lss
Normal file
File diff suppressed because it is too large
Load Diff
166
Microcontrollers/opdracht 3.2/Debug/opdracht 3.2.srec
Normal file
166
Microcontrollers/opdracht 3.2/Debug/opdracht 3.2.srec
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
S01400006F7064726163687420332E322E7372656308
|
||||||
|
S113000072C000008DC000008BC0000089C00000D9
|
||||||
|
S113001087C0000085C0000083C0000081C00000CC
|
||||||
|
S11300207FC000007DC0000034C1000079C0000022
|
||||||
|
S113003077C0000075C0000073C0000071C00000EC
|
||||||
|
S11300406FC000006DC000006BC0000069C00000FC
|
||||||
|
S113005067C0000065C0000063C0000061C000000C
|
||||||
|
S11300605FC000005DC000005BC0000059C000001C
|
||||||
|
S113007057C0000055C0000053C0000051C000002C
|
||||||
|
S11300804FC000004DC000004BC00000080000003D
|
||||||
|
S1130090BE922449123EABAAAA2ABECDCCCC4C3E79
|
||||||
|
S11300A000000080BEABAAAAAA3E00000000BF0068
|
||||||
|
S11300B00000803F0000000000084178D3BB438764
|
||||||
|
S11300C0D1133D190E3CC3BD4282AD2B3E68EC8278
|
||||||
|
S11300D076BED98FE1A93E4C80EFFFBE01C4FF7FFD
|
||||||
|
S11300E03F000000000011241FBECFEFD0E1DEBFAF
|
||||||
|
S11300F0CDBF11E0A0E0B1E0E6E2FAE000E00BBF22
|
||||||
|
S113010002C007900D92A830B107D9F721E0A8E00A
|
||||||
|
S1130110B1E001C01D92AE30B207E1F701D181C454
|
||||||
|
S11301206FCF9BB321E030E002C0220F331F8A95CA
|
||||||
|
S1130130E2F7292B2BBB08959BB321E030E002C0EA
|
||||||
|
S1130140220F331F8A95E2F7209529232BBB0895AC
|
||||||
|
S113015086E090E0E6DF89EF90E00197F1F700C0D8
|
||||||
|
S1130160000086E090E0E8DF89EF90E00197F1F786
|
||||||
|
S113017000C000000895CF93C82F85BB84E090E0B1
|
||||||
|
S1130180D0DFE6DFC295C07FC5BB84E090E0C9DF65
|
||||||
|
S1130190DFDFCF910895CF93C82F85BB84E090E033
|
||||||
|
S11301A0CBDFD6DFC295C07FC5BB84E090E0C4DF5F
|
||||||
|
S11301B0CFDFCF91089581E0EEDF83EF91E00197E7
|
||||||
|
S11301C0F1F700C0000080E8E6CF0895CF938FEFE9
|
||||||
|
S11301D084BB85BB8ABB15BA1BBAC0E2C5BBB8DFFA
|
||||||
|
S11301E0C5BBB6DF80E885BBB3DF15BAB1DF80EFEE
|
||||||
|
S11301F085BBAEDF15BAACDF80E685BBA9DF82E044
|
||||||
|
S1130200CADFA6DFCF91089520E030E008C0EFEC0C
|
||||||
|
S1130210F7E03197F1F700C000002F5F3F4F281738
|
||||||
|
S11302203907ACF30895CF92DF92EF92FF92CF9308
|
||||||
|
S1130230DF93EC01BC01990F880B990B1CD1A7D15A
|
||||||
|
S113024020E030E040E85FE37FD0E2D06B017C0146
|
||||||
|
S113025061E070E0C601A3D29C0181E0C81AD10814
|
||||||
|
S11302600EC0F901EC0DFD1DCE016AE070E070D204
|
||||||
|
S1130270805D808381E0C81AD108C62FD72FDD2086
|
||||||
|
S113028084F7C901DF91CF91FF90EF90DF90CF9079
|
||||||
|
S113029008951F920F920FB60F9211240BB60F926E
|
||||||
|
S11302A02F933F934F935F936F937F938F939F937A
|
||||||
|
S11302B0AF93BF93EF93FF93809106019091070151
|
||||||
|
S11302C084BD8091080190910901019690930901E0
|
||||||
|
S11302D08093080170DF8091080190910901A3DFE8
|
||||||
|
S11302E04ADFFF91EF91BF91AF919F918F917F91E1
|
||||||
|
S11302F06F915F914F913F912F910F900BBE0F9093
|
||||||
|
S11303000FBE0F901F9018958091060190910701E0
|
||||||
|
S113031084BD87B7806487BF789487E085BD0895DE
|
||||||
|
S113032081B38F7781BB8FEF8ABB87BB4FDFECDF55
|
||||||
|
S113033084B58BBB809108019091090188BB8AE048
|
||||||
|
S113034090E062DFF5CF5058BB27AA270ED0E5C056
|
||||||
|
S1130350D6D030F0DBD020F031F49F3F11F41EF4FE
|
||||||
|
S1130360CBC00EF4E095E7FBC1C0E92FE7D080F3E2
|
||||||
|
S1130370BA17620773078407950718F071F49EF59E
|
||||||
|
S1130380FFC00EF4E0950B2EBA2FA02D0B01B9017E
|
||||||
|
S113039090010C01CA01A0011124FF27591B99F0F7
|
||||||
|
S11303A0593F50F4503E68F11A16F040A22F232F03
|
||||||
|
S11303B0342F4427585FF3CF469537952795A79553
|
||||||
|
S11303C0F0405395C9F77EF41F16BA0B620B730BFA
|
||||||
|
S11303D0840BBAF09150A1F0FF0FBB1F661F771F6B
|
||||||
|
S11303E0881FC2F70EC0BA0F621F731F841F48F420
|
||||||
|
S11303F0879577956795B795F7959E3F08F0B3CFA6
|
||||||
|
S11304009395880F08F09927EE0F9795879508958F
|
||||||
|
S113041004D06894B111B5C0089598D088F09F575E
|
||||||
|
S113042090F0B92F9927B751A0F0D1F0660F771F3C
|
||||||
|
S1130430881F991F1AF0BA95C9F712C0B13081F01C
|
||||||
|
S11304409FD0B1E008959CC0672F782F8827B85FAC
|
||||||
|
S113045039F0B93FCCF3869577956795B395D9F77D
|
||||||
|
S11304603EF490958095709561957F4F8F4F9F4F87
|
||||||
|
S11304700895E89409C097FB3EF490958095709593
|
||||||
|
S113048061957F4F8F4F9F4F9923A9F0F92F96E9DC
|
||||||
|
S1130490BB279395F695879577956795B795F11151
|
||||||
|
S11304A0F8CFFAF4BB0F11F460FF1BC06F5F7F4FEE
|
||||||
|
S11304B08F4F9F4F16C0882311F096E911C0772300
|
||||||
|
S11304C021F09EE8872F762F05C0662371F096E809
|
||||||
|
S11304D0862F70E060E02AF09A95660F771F881FD8
|
||||||
|
S11304E0DAF7880F9695879597F9089597F99F6796
|
||||||
|
S11304F080E870E060E008959FEF80EC08950024A8
|
||||||
|
S11305000A941616170618060906089500240A9474
|
||||||
|
S113051012161306140605060895092E0394000CFA
|
||||||
|
S113052011F4882352F0BB0F40F4BF2B11F460FF89
|
||||||
|
S113053004C06F5F7F4F8F4F9F4F089557FD9058B2
|
||||||
|
S1130540440F551F59F05F3F71F04795880F97FB93
|
||||||
|
S1130550991F61F09F3F79F087950895121613064D
|
||||||
|
S11305601406551FF2CF4695F1DF08C0161617067C
|
||||||
|
S11305701806991FF1CF86957105610508940895B1
|
||||||
|
S1130580E894BB2766277727CB0197F908950AD00B
|
||||||
|
S113059029ED3BE54EED5EE345C00EF0A6C0ACCFC1
|
||||||
|
S11305A06894A4CFD3DFC8F39923D1F3C6F3DF93C0
|
||||||
|
S11305B0CF931F930F93FF92C92FDD2788232AF02F
|
||||||
|
S11305C02197660F771F881FDAF720E030E040E8B4
|
||||||
|
S11305D05FEB9FE3883920F0803E30F021968F77DF
|
||||||
|
S11305E0B3DEECE8F0E003C0AFDEE9EBF0E08BD083
|
||||||
|
S11305F08B01BE01EC01FB2E6F5771097595771FB6
|
||||||
|
S1130600880B990B38DF28E132E741E35FE316D02A
|
||||||
|
S1130610AF2D9801AE01FF900F911F91CF91DF9103
|
||||||
|
S1130620A4DE7BCF0BD079CF6ADF28F06FDF18F020
|
||||||
|
S1130630952309F05BCF60CF1124A3CF7FDFA0F314
|
||||||
|
S1130640959FD1F3950F50E0551F629FF001729F63
|
||||||
|
S1130650BB27F00DB11D639FAA27F00DB11DAA1F82
|
||||||
|
S1130660649F6627B00DA11D661F829F2227B00DCF
|
||||||
|
S1130670A11D621F739FB00DA11D621F839FA00D5A
|
||||||
|
S1130680611D221F749F3327A00D611D231F849FAA
|
||||||
|
S1130690600D211D822F762F6A2F11249F57504001
|
||||||
|
S11306A08AF0E1F088234AF0EE0FFF1FBB1F661F9C
|
||||||
|
S11306B0771F881F91505040A9F79E3F510570F055
|
||||||
|
S11306C015CF5FCF5F3FECF3983EDCF386957795CB
|
||||||
|
S11306D06795B795F795E7959F5FC1F7FE2B880F50
|
||||||
|
S11306E0911D9695879597F908959F3F31F0915004
|
||||||
|
S11306F020F4879577956795B795880F911D969502
|
||||||
|
S1130700879597F90895DF93CF931F930F93FF92E3
|
||||||
|
S1130710EF92DF927B018C01689405C0DA2EEF0121
|
||||||
|
S11307208DDFFE01E894A591259135914591559170
|
||||||
|
S1130730AEF3EF011ADEFE019701A801DA9479F70E
|
||||||
|
S1130740DF90EF90FF900F911F91CF91DF9108956B
|
||||||
|
S113075097FB072E16F4009406D077FD08D00BD033
|
||||||
|
S113076007FC05D03EF4909581959F4F08957095B0
|
||||||
|
S113077061957F4F0895AA1BBB1B51E107C0AA1FB7
|
||||||
|
S1130780BB1FA617B70710F0A61BB70B881F991F2E
|
||||||
|
S11307905A95A9F780959095BC01CD0108950F93C2
|
||||||
|
S11307A01F93CF93DF93869F8001879F100D969FA1
|
||||||
|
S11307B0100D1124C8010DD0EC01009721F0A801FF
|
||||||
|
S11307C060E070E027D1CE01DF91CF911F910F91AE
|
||||||
|
S11307D008950F931F93CF93DF938230910510F404
|
||||||
|
S11307E082E090E0E0910C01F0910D0120E030E016
|
||||||
|
S11307F0A0E0B0E0309719F140815181028113816A
|
||||||
|
S113080048175907C8F08417950769F4109731F011
|
||||||
|
S113081012960C93129713961C9327C000930C0105
|
||||||
|
S113082010930D0122C02115310519F04217530709
|
||||||
|
S113083018F49A01BD01EF01DF01F801DBCF2115A6
|
||||||
|
S11308403105F9F0281B390B2430310580F48A81F5
|
||||||
|
S11308509B816115710521F0FB019383828304C0A0
|
||||||
|
S113086090930D0180930C01FE01329644C0FE0169
|
||||||
|
S1130870E20FF31F81939193225031093983288326
|
||||||
|
S11308803AC020910A0130910B01232B41F42091AD
|
||||||
|
S113089002013091030130930B0120930A0120914E
|
||||||
|
S11308A00001309101012115310541F42DB73EB706
|
||||||
|
S11308B04091040150910501241B350BE0910A017C
|
||||||
|
S11308C0F0910B01E217F307A0F42E1B3F0B28173E
|
||||||
|
S11308D0390778F0AC014E5F5F4F2417350748F0B5
|
||||||
|
S11308E04E0F5F1F50930B0140930A018193919324
|
||||||
|
S11308F002C0E0E0F0E0CF01DF91CF911F910F91B2
|
||||||
|
S11309000895CF93DF93009709F481C0FC013297D7
|
||||||
|
S113091013821282A0910C01B0910D01109781F401
|
||||||
|
S113092020813181820F931F20910A0130910B01A4
|
||||||
|
S11309302817390751F5F0930B01E0930A0167C0BA
|
||||||
|
S1130940ED0120E030E0CE17DF0740F44A815B81FF
|
||||||
|
S11309509E0141155105F1F0EA01F5CFD383C2831D
|
||||||
|
S113096040815181840F951FC817D90759F4888194
|
||||||
|
S11309709981840F951F0296918380838A819B813C
|
||||||
|
S1130980938382832115310529F4F0930D01E093BB
|
||||||
|
S11309900C013DC0E901FB83EA8349915991C40FDD
|
||||||
|
S11309A0D51FEC17FD0761F480819181840F951F99
|
||||||
|
S11309B00296E90199838883828193819B838A8348
|
||||||
|
S11309C0E0E0F0E012968D919C911397009719F056
|
||||||
|
S11309D0FD01DC01F7CF8D919C9111979D012E5F54
|
||||||
|
S11309E03F4F820F931F20910A0130910B0128176A
|
||||||
|
S11309F0390769F4309729F410920D0110920C0113
|
||||||
|
S1130A0002C013821282B0930B01A0930A01DF91FA
|
||||||
|
S1130A10CF910895DC0101C06D9341505040E0F73F
|
||||||
|
S1090A200895F894FFCFD5
|
||||||
|
S10B0A2600000E012000FFFF97
|
||||||
|
S9030000FC
|
||||||
122
Microcontrollers/opdracht 3.2/lcd_control.c
Normal file
122
Microcontrollers/opdracht 3.2/lcd_control.c
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
/*
|
||||||
|
* lcd_controlc.c
|
||||||
|
*
|
||||||
|
* Created: 24-2-2021 11:55:12
|
||||||
|
* Author: Sem
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include "lcd_control.h"
|
||||||
|
|
||||||
|
void _delay_ms(double __ms);
|
||||||
|
|
||||||
|
void lcd_clear() {
|
||||||
|
lcd_write_command (0x01); //Leeg display
|
||||||
|
_delay_ms(2);
|
||||||
|
lcd_write_command (0x80); //Cursor terug naar start
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_strobe_lcd_e(void) {
|
||||||
|
|
||||||
|
sbi_porta(LCD_E); // E high
|
||||||
|
_delay_ms(1);
|
||||||
|
cbi_porta(LCD_E); // E low
|
||||||
|
_delay_ms(1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void sbi_portc(int index){
|
||||||
|
PORTC |= (1<<index);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void cbi_portc(int index){
|
||||||
|
PORTC &= ~(1<<index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sbi_porta(int index){
|
||||||
|
PORTA |= (1<<index);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void cbi_porta(int index){
|
||||||
|
PORTA &= ~(1<<index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_4bits_mode(void) {
|
||||||
|
|
||||||
|
// PORTC output mode and all low (also E and RS pin)
|
||||||
|
|
||||||
|
// Init I/O
|
||||||
|
DDRC = 0xFF; // PORTD(7) output, PORTD(6:0) input
|
||||||
|
PORTC = 0xFF;
|
||||||
|
|
||||||
|
DDRA = 0xFF;
|
||||||
|
PORTC = 0x00;
|
||||||
|
PORTA = 0x00;
|
||||||
|
|
||||||
|
PORTC = 0x20; // function for 4-bit 1 row
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
PORTC = 0x20; // function high nibble 4-bit 2 row
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
PORTC = 0x80; // function low nibble 4-bit 2 row
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
PORTC = 0x00; // function high nibble turn on visible blinking-block cursor
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
PORTC = 0xF0; // function low nibble turn on visible blinking-block cursor
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
PORTC = 0x00; // Entry mode set high nibble
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
PORTC = 0x60; // Entry mode set low nibble
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
// return home
|
||||||
|
lcd_write_command(0x02);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_write_character(unsigned char byte){
|
||||||
|
|
||||||
|
|
||||||
|
//upper nibble
|
||||||
|
PORTC = byte;
|
||||||
|
sbi_porta(LCD_RS);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
//lower nibble
|
||||||
|
PORTC = (byte<<4);
|
||||||
|
sbi_porta(LCD_RS);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_write_command(unsigned char byte){
|
||||||
|
|
||||||
|
//upper nibble
|
||||||
|
PORTC = byte;
|
||||||
|
cbi_porta(LCD_RS);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
//lower nibble
|
||||||
|
PORTC = (byte<<4);
|
||||||
|
cbi_porta(LCD_RS);
|
||||||
|
lcd_strobe_lcd_e();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_write_string(const char *str) {
|
||||||
|
|
||||||
|
for(;*str; str++){
|
||||||
|
lcd_write_character(*str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_move_right(void){
|
||||||
|
|
||||||
|
lcd_write_command(0x1E);
|
||||||
|
}
|
||||||
29
Microcontrollers/opdracht 3.2/lcd_control.h
Normal file
29
Microcontrollers/opdracht 3.2/lcd_control.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* lcd_control.h
|
||||||
|
*
|
||||||
|
* Created: 24-2-2021 11:56:16
|
||||||
|
* Author: Sem
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LCD_CONTROL_H_
|
||||||
|
#define LCD_CONTROL_H_
|
||||||
|
|
||||||
|
#define LCD_E 6
|
||||||
|
#define LCD_RS 4
|
||||||
|
|
||||||
|
void _delay_ms(double __ms);
|
||||||
|
void lcd_strobe_lcd_e(void);
|
||||||
|
void sbi_portc(int index);
|
||||||
|
void cbi_portc(int index);
|
||||||
|
void sbi_porta(int index);
|
||||||
|
void cbi_porta(int index);
|
||||||
|
void init_4bits_mode(void);
|
||||||
|
void lcd_write_string(const char *str);
|
||||||
|
void lcd_write_character(unsigned char byte);
|
||||||
|
void lcd_write_command(unsigned char byte);
|
||||||
|
void lcd_clear();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* LCD_CONTROL_H_ */
|
||||||
70
Microcontrollers/opdracht 3.2/main.c
Normal file
70
Microcontrollers/opdracht 3.2/main.c
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
* counter_t2_interrupt.c
|
||||||
|
*
|
||||||
|
* Created: 21/02/2021 13:00:25
|
||||||
|
* Author : Etienne
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define F_CPU 8e6
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include "lcd_control.h"
|
||||||
|
|
||||||
|
#define BIT(x) (1 << (x))
|
||||||
|
|
||||||
|
// wait(): busy waiting for 'ms' millisecond
|
||||||
|
// Used library: util/delay.h
|
||||||
|
void wait( int ms ) {
|
||||||
|
for (int tms=0; tms<ms; tms++) {
|
||||||
|
_delay_ms( 1 ); // library function (max 30 ms at 8MHz)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char * toArray(int number)
|
||||||
|
{
|
||||||
|
int n = log10(number) + 1;
|
||||||
|
int i;
|
||||||
|
char *numberArray = calloc(n, sizeof(char));
|
||||||
|
for (i = n-1; i >= 0; --i, number /= 10)
|
||||||
|
{
|
||||||
|
numberArray[i] = (number % 10) + '0';
|
||||||
|
}
|
||||||
|
return numberArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
volatile int TimerPreset = -1; // 0xF6, 10 till overflow
|
||||||
|
volatile int number = 0;
|
||||||
|
|
||||||
|
// Interrupt routine timer2 overflow
|
||||||
|
ISR( TIMER2_OVF_vect ) {
|
||||||
|
TCNT2 = TimerPreset; // Preset value
|
||||||
|
number++; // Increment counter
|
||||||
|
lcd_clear();
|
||||||
|
lcd_write_character(toArray(number));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize timer2
|
||||||
|
void timer2Init( void ) {
|
||||||
|
TCNT2 = TimerPreset; // Preset value of counter 2
|
||||||
|
TIMSK |= BIT(6); // T2 overflow interrupt enable
|
||||||
|
sei(); // turn_on intr all
|
||||||
|
TCCR2 = 0x07; // Initialize T2: ext.counting, rising edge, run
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
DDRD &= ~BIT(7); // PD7 op input: DDRD=xxxx xxx0
|
||||||
|
DDRA = 0xFF; // set PORTA for output (shows countregister)
|
||||||
|
DDRB = 0xFF; // set PORTB for output (shows tenthvalue)
|
||||||
|
|
||||||
|
init_4bits_mode();
|
||||||
|
|
||||||
|
timer2Init();
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
PORTA = TCNT2; // show value counter 2
|
||||||
|
PORTB = number; // show value tenth counter
|
||||||
|
wait(10);
|
||||||
|
}
|
||||||
|
}
|
||||||
86
Microcontrollers/opdracht 3.2/opdracht 3.2.componentinfo.xml
Normal file
86
Microcontrollers/opdracht 3.2/opdracht 3.2.componentinfo.xml
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
|
||||||
|
<ProjectComponents>
|
||||||
|
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
|
||||||
|
<CApiVersion></CApiVersion>
|
||||||
|
<CBundle></CBundle>
|
||||||
|
<CClass>Device</CClass>
|
||||||
|
<CGroup>Startup</CGroup>
|
||||||
|
<CSub></CSub>
|
||||||
|
<CVariant></CVariant>
|
||||||
|
<CVendor>Atmel</CVendor>
|
||||||
|
<CVersion>1.6.0</CVersion>
|
||||||
|
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
|
||||||
|
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
|
||||||
|
<Description></Description>
|
||||||
|
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
|
||||||
|
<d4p1:anyType i:type="FileInfo">
|
||||||
|
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include\</AbsolutePath>
|
||||||
|
<Attribute></Attribute>
|
||||||
|
<Category>include</Category>
|
||||||
|
<Condition>C</Condition>
|
||||||
|
<FileContentHash i:nil="true" />
|
||||||
|
<FileVersion></FileVersion>
|
||||||
|
<Name>include/</Name>
|
||||||
|
<SelectString></SelectString>
|
||||||
|
<SourcePath></SourcePath>
|
||||||
|
</d4p1:anyType>
|
||||||
|
<d4p1:anyType i:type="FileInfo">
|
||||||
|
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include\avr\iom128.h</AbsolutePath>
|
||||||
|
<Attribute></Attribute>
|
||||||
|
<Category>header</Category>
|
||||||
|
<Condition>C</Condition>
|
||||||
|
<FileContentHash>JdJ7J9I/SJh965SEyyyVYw==</FileContentHash>
|
||||||
|
<FileVersion></FileVersion>
|
||||||
|
<Name>include/avr/iom128.h</Name>
|
||||||
|
<SelectString></SelectString>
|
||||||
|
<SourcePath></SourcePath>
|
||||||
|
</d4p1:anyType>
|
||||||
|
<d4p1:anyType i:type="FileInfo">
|
||||||
|
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\templates\main.c</AbsolutePath>
|
||||||
|
<Attribute>template</Attribute>
|
||||||
|
<Category>source</Category>
|
||||||
|
<Condition>C Exe</Condition>
|
||||||
|
<FileContentHash>jmg1Ivqg0tP1uOL2/aRLyg==</FileContentHash>
|
||||||
|
<FileVersion></FileVersion>
|
||||||
|
<Name>templates/main.c</Name>
|
||||||
|
<SelectString>Main file (.c)</SelectString>
|
||||||
|
<SourcePath></SourcePath>
|
||||||
|
</d4p1:anyType>
|
||||||
|
<d4p1:anyType i:type="FileInfo">
|
||||||
|
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\templates\main.cpp</AbsolutePath>
|
||||||
|
<Attribute>template</Attribute>
|
||||||
|
<Category>source</Category>
|
||||||
|
<Condition>C Exe</Condition>
|
||||||
|
<FileContentHash>mkKaE95TOoATsuBGv6jmxg==</FileContentHash>
|
||||||
|
<FileVersion></FileVersion>
|
||||||
|
<Name>templates/main.cpp</Name>
|
||||||
|
<SelectString>Main file (.cpp)</SelectString>
|
||||||
|
<SourcePath></SourcePath>
|
||||||
|
</d4p1:anyType>
|
||||||
|
<d4p1:anyType i:type="FileInfo">
|
||||||
|
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128</AbsolutePath>
|
||||||
|
<Attribute></Attribute>
|
||||||
|
<Category>libraryPrefix</Category>
|
||||||
|
<Condition>GCC</Condition>
|
||||||
|
<FileContentHash i:nil="true" />
|
||||||
|
<FileVersion></FileVersion>
|
||||||
|
<Name>gcc/dev/atmega128</Name>
|
||||||
|
<SelectString></SelectString>
|
||||||
|
<SourcePath></SourcePath>
|
||||||
|
</d4p1:anyType>
|
||||||
|
</Files>
|
||||||
|
<PackName>ATmega_DFP</PackName>
|
||||||
|
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/Atmel.ATmega_DFP.pdsc</PackPath>
|
||||||
|
<PackVersion>1.6.364</PackVersion>
|
||||||
|
<PresentInProject>true</PresentInProject>
|
||||||
|
<ReferenceConditionId>ATmega128</ReferenceConditionId>
|
||||||
|
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
|
||||||
|
<d4p1:string></d4p1:string>
|
||||||
|
</RteComponents>
|
||||||
|
<Status>Resolved</Status>
|
||||||
|
<VersionMode>Fixed</VersionMode>
|
||||||
|
<IsComponentInAtProject>true</IsComponentInAtProject>
|
||||||
|
</ProjectComponent>
|
||||||
|
</ProjectComponents>
|
||||||
|
</Store>
|
||||||
124
Microcontrollers/opdracht 3.2/opdracht 3.2.cproj
Normal file
124
Microcontrollers/opdracht 3.2/opdracht 3.2.cproj
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectVersion>7.0</ProjectVersion>
|
||||||
|
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
|
||||||
|
<ProjectGuid>{eb7415c6-2130-46ad-9842-612c67ade6d4}</ProjectGuid>
|
||||||
|
<avrdevice>ATmega128</avrdevice>
|
||||||
|
<avrdeviceseries>none</avrdeviceseries>
|
||||||
|
<OutputType>Executable</OutputType>
|
||||||
|
<Language>C</Language>
|
||||||
|
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||||
|
<OutputFileExtension>.elf</OutputFileExtension>
|
||||||
|
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||||
|
<AssemblyName>opdracht 3.2</AssemblyName>
|
||||||
|
<Name>opdracht 3.2</Name>
|
||||||
|
<RootNamespace>opdracht 3.2</RootNamespace>
|
||||||
|
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||||
|
<KeepTimersRunning>true</KeepTimersRunning>
|
||||||
|
<OverrideVtor>false</OverrideVtor>
|
||||||
|
<CacheFlash>true</CacheFlash>
|
||||||
|
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||||
|
<RamSnippetAddress />
|
||||||
|
<UncachedRange />
|
||||||
|
<preserveEEPROM>true</preserveEEPROM>
|
||||||
|
<OverrideVtorValue />
|
||||||
|
<BootSegment>2</BootSegment>
|
||||||
|
<ResetRule>0</ResetRule>
|
||||||
|
<eraseonlaunchrule>0</eraseonlaunchrule>
|
||||||
|
<EraseKey />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
|
<ToolchainSettings>
|
||||||
|
<AvrGcc>
|
||||||
|
<avrgcc.common.Device>-mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128"</avrgcc.common.Device>
|
||||||
|
<avrgcc.common.optimization.RelaxBranches>True</avrgcc.common.optimization.RelaxBranches>
|
||||||
|
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||||
|
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||||
|
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||||
|
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||||
|
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||||
|
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||||
|
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||||
|
<avrgcc.compiler.symbols.DefSymbols>
|
||||||
|
<ListValues>
|
||||||
|
<Value>NDEBUG</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.compiler.symbols.DefSymbols>
|
||||||
|
<avrgcc.compiler.directories.IncludePaths>
|
||||||
|
<ListValues>
|
||||||
|
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.compiler.directories.IncludePaths>
|
||||||
|
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||||
|
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||||
|
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||||
|
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||||
|
<avrgcc.linker.libraries.Libraries>
|
||||||
|
<ListValues>
|
||||||
|
<Value>libm</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.linker.libraries.Libraries>
|
||||||
|
<avrgcc.assembler.general.IncludePaths>
|
||||||
|
<ListValues>
|
||||||
|
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.assembler.general.IncludePaths>
|
||||||
|
</AvrGcc>
|
||||||
|
</ToolchainSettings>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||||
|
<ToolchainSettings>
|
||||||
|
<AvrGcc>
|
||||||
|
<avrgcc.common.Device>-mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128"</avrgcc.common.Device>
|
||||||
|
<avrgcc.common.optimization.RelaxBranches>True</avrgcc.common.optimization.RelaxBranches>
|
||||||
|
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||||
|
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||||
|
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||||
|
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||||
|
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||||
|
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||||
|
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||||
|
<avrgcc.compiler.symbols.DefSymbols>
|
||||||
|
<ListValues>
|
||||||
|
<Value>DEBUG</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.compiler.symbols.DefSymbols>
|
||||||
|
<avrgcc.compiler.directories.IncludePaths>
|
||||||
|
<ListValues>
|
||||||
|
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.compiler.directories.IncludePaths>
|
||||||
|
<avrgcc.compiler.optimization.level>Optimize debugging experience (-Og)</avrgcc.compiler.optimization.level>
|
||||||
|
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||||
|
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||||
|
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||||
|
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||||
|
<avrgcc.linker.libraries.Libraries>
|
||||||
|
<ListValues>
|
||||||
|
<Value>libm</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.linker.libraries.Libraries>
|
||||||
|
<avrgcc.assembler.general.IncludePaths>
|
||||||
|
<ListValues>
|
||||||
|
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.assembler.general.IncludePaths>
|
||||||
|
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
|
||||||
|
</AvrGcc>
|
||||||
|
</ToolchainSettings>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="lcd_control.c">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lcd_control.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="main.c">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||||
|
</Project>
|
||||||
@@ -37,6 +37,7 @@ SUBDIRS :=
|
|||||||
|
|
||||||
# Add inputs and outputs from these tool invocations to the build variables
|
# Add inputs and outputs from these tool invocations to the build variables
|
||||||
C_SRCS += \
|
C_SRCS += \
|
||||||
|
../lcd_control.c \
|
||||||
../main.c
|
../main.c
|
||||||
|
|
||||||
|
|
||||||
@@ -47,15 +48,19 @@ ASM_SRCS +=
|
|||||||
|
|
||||||
|
|
||||||
OBJS += \
|
OBJS += \
|
||||||
|
lcd_control.o \
|
||||||
main.o
|
main.o
|
||||||
|
|
||||||
OBJS_AS_ARGS += \
|
OBJS_AS_ARGS += \
|
||||||
|
lcd_control.o \
|
||||||
main.o
|
main.o
|
||||||
|
|
||||||
C_DEPS += \
|
C_DEPS += \
|
||||||
|
lcd_control.d \
|
||||||
main.d
|
main.d
|
||||||
|
|
||||||
C_DEPS_AS_ARGS += \
|
C_DEPS_AS_ARGS += \
|
||||||
|
lcd_control.d \
|
||||||
main.d
|
main.d
|
||||||
|
|
||||||
OUTPUT_FILE_PATH +=testlcd.elf
|
OUTPUT_FILE_PATH +=testlcd.elf
|
||||||
@@ -72,6 +77,13 @@ LINKER_SCRIPT_DEP+=
|
|||||||
|
|
||||||
|
|
||||||
# AVR32/GNU C Compiler
|
# AVR32/GNU C Compiler
|
||||||
|
./lcd_control.o: .././lcd_control.c
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.6.364\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
./main.o: .././main.c
|
./main.o: .././main.c
|
||||||
@echo Building file: $<
|
@echo Building file: $<
|
||||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||||
|
|||||||
@@ -2,5 +2,7 @@
|
|||||||
# Automatically-generated file. Do not edit or delete the file
|
# Automatically-generated file. Do not edit or delete the file
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
lcd_control.c
|
||||||
|
|
||||||
main.c
|
main.c
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.49.1" />
|
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.49.1" />
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</framework-data>
|
</framework-data>
|
||||||
</AsfFrameworkConfig>
|
</AsfFrameworkConfig>
|
||||||
<avrtool>com.atmel.avrdbg.tool.atmelice</avrtool>
|
<avrtool>com.atmel.avrdbg.tool.atmelice</avrtool>
|
||||||
<avrtoolserialnumber>J42700011096</avrtoolserialnumber>
|
<avrtoolserialnumber>J42700011096</avrtoolserialnumber>
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
|
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\include\</Value>
|
||||||
</ListValues>
|
</ListValues>
|
||||||
</avrgcc.assembler.general.IncludePaths>
|
</avrgcc.assembler.general.IncludePaths>
|
||||||
</AvrGcc>
|
</AvrGcc>
|
||||||
</ToolchainSettings>
|
</ToolchainSettings>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
</ListValues>
|
</ListValues>
|
||||||
</avrgcc.assembler.general.IncludePaths>
|
</avrgcc.assembler.general.IncludePaths>
|
||||||
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
|
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
|
||||||
</AvrGcc>
|
</AvrGcc>
|
||||||
</ToolchainSettings>
|
</ToolchainSettings>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user