Commit 7bb9b8f1df6cf6ecf6e3fc04b089d1603e735d81
1 parent
2b7b8e5c
Tests d'avr sur atmega2560, de controle de servomoteur et de moteur pas à pas concluants
Showing
8 changed files
with
145 additions
and
29 deletions
Show diff stats
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +#include <avr/io.h> | ||
2 | +#include <util/delay.h> | ||
3 | + | ||
4 | +int main(void){ | ||
5 | + // SCLK PIN 37 | ||
6 | + // SIN PIN 35 | ||
7 | + DDRC = 0x03; | ||
8 | + uint8_t LEDs = {10, 20, 30, 40, 50, 60, 70, 80, 90, | ||
9 | + 100, 110, 120, 130, 140, 150, 160, 170, 180, 190 | ||
10 | + 200, 210, 220, 230, 240}; | ||
11 | + uint8_t ANDs = {0x001, 0x002, 0x004, 0x008, 0x010, 0x020, 0x040, 0x080, | ||
12 | + 0x100, 0x200, 0x400, 0x800}; | ||
13 | + | ||
14 | + while(1){ | ||
15 | + for(int i=0; i<24; i++){ | ||
16 | + uint16_t n = LEDs[i] << 4; | ||
17 | + int clkStatus = 0; | ||
18 | + for(int j=0; j<12; j++){ | ||
19 | + if(j == 6) | ||
20 | + clkStatus = 1; | ||
21 | + PORTC = (n & ANDs[j]) << 1 | clkStatus; | ||
22 | + _delay_ms(1); | ||
23 | + } | ||
24 | + } | ||
25 | + } | ||
26 | + return 0; | ||
27 | +} |
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +export CC = avr-gcc | ||
2 | + | ||
3 | +export MCU = atmega2560 | ||
4 | +export TARGET_ARCH = -mmcu=$(MCU) | ||
5 | + | ||
6 | +export CFLAGS = -Wall -I. -DF_CPU=16000000 -Os #-g | ||
7 | +export LDFLAGS = -g $(TARGET_ARCH) -lm -Wl,--gc-sections # -Os | ||
8 | + | ||
9 | +TARGET = servoControl | ||
10 | +TERM = /dev/ttyACM0 | ||
11 | +CPPFLAGS = -mmcu=$(MCU) | ||
12 | +PGMERISP = -c wiring -b 115200 -P $(TERM) -D | ||
13 | +export DUDE = /usr/bin/avrdude -F -v -p $(MCU) | ||
14 | + | ||
15 | +C_SRC = $(wildcard *.c) | ||
16 | +OBJS = $(C_SRC:.c=.o) | ||
17 | + | ||
18 | +all: $(TARGET).hex | ||
19 | + | ||
20 | +clean: | ||
21 | + rm -f *.o *.hex *.elf | ||
22 | + | ||
23 | +%.o:%.c | ||
24 | + $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||
25 | + | ||
26 | +$(TARGET).elf: $(OBJS) | ||
27 | + $(CC) $(LDFLAGS) -o $@ $(OBJS) | ||
28 | + | ||
29 | +$(TARGET).hex: $(TARGET).elf | ||
30 | + avr-objcopy -j .text -j .data -O ihex $(TARGET).elf $(TARGET).hex | ||
31 | + avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex $(TARGET).elf eeprom.hex | ||
32 | + | ||
33 | +upload: $(TARGET).hex | ||
34 | + stty -F $(TERM) hupcl # reset | ||
35 | + $(DUDE) $(PGMERISP) -U flash:w:$(TARGET).hex | ||
36 | + make clean |
tests/atmega2560/makefile
@@ -6,12 +6,11 @@ export TARGET_ARCH = -mmcu=$(MCU) | @@ -6,12 +6,11 @@ export TARGET_ARCH = -mmcu=$(MCU) | ||
6 | export CFLAGS = -Wall -I. -DF_CPU=16000000 -Os #-g | 6 | export CFLAGS = -Wall -I. -DF_CPU=16000000 -Os #-g |
7 | export LDFLAGS = -g $(TARGET_ARCH) -lm -Wl,--gc-sections # -Os | 7 | export LDFLAGS = -g $(TARGET_ARCH) -lm -Wl,--gc-sections # -Os |
8 | 8 | ||
9 | -TARGET = usb | 9 | +TARGET = servoControl |
10 | TERM = /dev/ttyACM0 | 10 | TERM = /dev/ttyACM0 |
11 | CPPFLAGS = -mmcu=$(MCU) | 11 | CPPFLAGS = -mmcu=$(MCU) |
12 | -PGMERISP = -c stk500v2 -b 115200 -P $(TERM) | ||
13 | -ARVDUDECONF= -C /usr/local/arduino/arduino-0022/hardware/tools/avrdude.conf | ||
14 | -export DUDE = /usr/bin/avrdude -F -v -p $(MCU) $(AVRDUDECONF) | 12 | +PGMERISP = -c wiring -b 115200 -P $(TERM) -D |
13 | +export DUDE = /usr/bin/avrdude -F -v -p $(MCU) | ||
15 | 14 | ||
16 | C_SRC = $(wildcard *.c) | 15 | C_SRC = $(wildcard *.c) |
17 | OBJS = $(C_SRC:.c=.o) | 16 | OBJS = $(C_SRC:.c=.o) |
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +export CC = avr-gcc | ||
2 | + | ||
3 | +export MCU = atmega2560 | ||
4 | +export TARGET_ARCH = -mmcu=$(MCU) | ||
5 | + | ||
6 | +export CFLAGS = -Wall -I. -DF_CPU=16000000 -Os #-g | ||
7 | +export LDFLAGS = -g $(TARGET_ARCH) -lm -Wl,--gc-sections # -Os | ||
8 | + | ||
9 | +TARGET = servoControl | ||
10 | +TERM = /dev/ttyACM0 | ||
11 | +CPPFLAGS = -mmcu=$(MCU) | ||
12 | +PGMERISP = -c wiring -b 115200 -P $(TERM) -D | ||
13 | +export DUDE = /usr/bin/avrdude -F -v -p $(MCU) | ||
14 | + | ||
15 | +C_SRC = $(wildcard *.c) | ||
16 | +OBJS = $(C_SRC:.c=.o) | ||
17 | + | ||
18 | +all: $(TARGET).hex | ||
19 | + | ||
20 | +clean: | ||
21 | + rm -f *.o *.hex *.elf | ||
22 | + | ||
23 | +%.o:%.c | ||
24 | + $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||
25 | + | ||
26 | +$(TARGET).elf: $(OBJS) | ||
27 | + $(CC) $(LDFLAGS) -o $@ $(OBJS) | ||
28 | + | ||
29 | +$(TARGET).hex: $(TARGET).elf | ||
30 | + avr-objcopy -j .text -j .data -O ihex $(TARGET).elf $(TARGET).hex | ||
31 | + avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex $(TARGET).elf eeprom.hex | ||
32 | + | ||
33 | +upload: $(TARGET).hex | ||
34 | + stty -F $(TERM) hupcl # reset | ||
35 | + $(DUDE) $(PGMERISP) -U flash:w:$(TARGET).hex | ||
36 | + make clean |
tests/atmega2560/ordonanceur.c renamed to tests/atmega2560/ordonanceur/ordonanceur.c
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +export CC = avr-gcc | ||
2 | + | ||
3 | +export MCU = atmega2560 | ||
4 | +export TARGET_ARCH = -mmcu=$(MCU) | ||
5 | + | ||
6 | +export CFLAGS = -Wall -I. -DF_CPU=16000000 -Os #-g | ||
7 | +export LDFLAGS = -g $(TARGET_ARCH) -lm -Wl,--gc-sections # -Os | ||
8 | + | ||
9 | +TARGET = servoAndStepperControl | ||
10 | +TERM = /dev/ttyACM0 | ||
11 | +CPPFLAGS = -mmcu=$(MCU) | ||
12 | +PGMERISP = -c wiring -b 115200 -P $(TERM) -D | ||
13 | +export DUDE = /usr/bin/avrdude -F -v -p $(MCU) | ||
14 | + | ||
15 | +C_SRC = $(wildcard *.c) | ||
16 | +OBJS = $(C_SRC:.c=.o) | ||
17 | + | ||
18 | +all: $(TARGET).hex | ||
19 | + | ||
20 | +clean: | ||
21 | + rm -f *.o *.hex *.elf | ||
22 | + | ||
23 | +%.o:%.c | ||
24 | + $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ | ||
25 | + | ||
26 | +$(TARGET).elf: $(OBJS) | ||
27 | + $(CC) $(LDFLAGS) -o $@ $(OBJS) | ||
28 | + | ||
29 | +$(TARGET).hex: $(TARGET).elf | ||
30 | + avr-objcopy -j .text -j .data -O ihex $(TARGET).elf $(TARGET).hex | ||
31 | + avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex $(TARGET).elf eeprom.hex | ||
32 | + | ||
33 | +upload: $(TARGET).hex | ||
34 | + stty -F $(TERM) hupcl # reset | ||
35 | + $(DUDE) $(PGMERISP) -U flash:w:$(TARGET).hex | ||
36 | + make clean |
tests/atmega2560/servoControl.c renamed to tests/atmega2560/servoAndStepperControl/servoAndStepperControl.c
@@ -2,13 +2,15 @@ | @@ -2,13 +2,15 @@ | ||
2 | #include <util/delay.h> | 2 | #include <util/delay.h> |
3 | 3 | ||
4 | int main(void){ | 4 | int main(void){ |
5 | - DDRC = 0x01; | 5 | + // pin 13 |
6 | + DDRB = 0x80; | ||
6 | 7 | ||
7 | while(1){ | 8 | while(1){ |
8 | - PORTC = 0x01; | ||
9 | - _delay_ms(200); | ||
10 | - PORTC = 0x00; | ||
11 | - _delay_ms(200); | 9 | + PORTB = 0x80; |
10 | + _delay_us(1000); | ||
11 | + PORTB = 0x00; | ||
12 | + _delay_us(1000); | ||
12 | } | 13 | } |
13 | return 0; | 14 | return 0; |
14 | } | 15 | } |
16 | + |
tests/atmega2560/stepperControl.c deleted
@@ -1,20 +0,0 @@ | @@ -1,20 +0,0 @@ | ||
1 | -#include <avr/io.h> | ||
2 | -#include <util/delay.h> | ||
3 | - | ||
4 | -int vitesseToDelay(int vitesse){ | ||
5 | - return ; | ||
6 | -} | ||
7 | - | ||
8 | -int main(void){ | ||
9 | - DDRC = 0x01; | ||
10 | - PORTC |= 0x02; // Direction horraire ? | ||
11 | - //PORTC &= 0xFD; // Direction anti-horraire ? | ||
12 | - while(1){ | ||
13 | - // 1 Step | ||
14 | - PORTC |= 0x01; | ||
15 | - _delay_ms(10); | ||
16 | - PORTC &= 0xFE; | ||
17 | - _delay_ms(10); | ||
18 | - } | ||
19 | - return 0; | ||
20 | -} |