mirror of
https://github.com/eddyem/scorpio.git
synced 2025-12-06 18:55:19 +03:00
AVR
This commit is contained in:
parent
7de4c0f78f
commit
3c1b544489
30
Makefile
30
Makefile
@ -10,29 +10,29 @@ DEFS = -DBAUD=9600
|
||||
DEFS += -DEBUG
|
||||
LIBS =
|
||||
|
||||
SRC=$(wildcard *.c)
|
||||
HEX = $(NAME).hex
|
||||
ELF = $(NAME).elf
|
||||
OBJECTS = $(SRC:%.c=%.o)
|
||||
|
||||
# controller
|
||||
DEVICE = atmega328p
|
||||
#atmega8535
|
||||
DEVICE = atmega8535
|
||||
#Тактовая частота 8 МГц
|
||||
CLOCK = 8000000
|
||||
# partno (for avrdude)
|
||||
PARTNO = m8535
|
||||
|
||||
CFLAGS = -g -Wall $(OPTIMIZE) $(DEFS)
|
||||
LDFLAGS = -Wl,-Map,$(NAME).map
|
||||
|
||||
# programmer (for avrdude)
|
||||
PROGRAMMER = arduino
|
||||
# partno (for avrdude)
|
||||
PARTNO = m328p
|
||||
PROGRAMMER = avrisp
|
||||
|
||||
# serial port device (for avrdude)
|
||||
SERPORT = /dev/ttyUSB0
|
||||
#Тактовая частота 16 МГц
|
||||
CLOCK = 16000000
|
||||
|
||||
SRC=$(wildcard *.c)
|
||||
HEX = $(NAME).hex
|
||||
ELF = $(NAME).elf
|
||||
OBJECTS = $(SRC:%.c=%.o)
|
||||
|
||||
# avrdude command from arduino IDE
|
||||
AVRDUDE = avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -p$(PARTNO) -c$(PROGRAMMER) -P$(SERPORT) -b115200 -D
|
||||
AVRDUDE = avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -p$(PARTNO) -c$(PROGRAMMER) -P$(SERPORT) -b19200 -D
|
||||
|
||||
COMPILE = $(CC) $(CFLAGS) -mmcu=$(DEVICE) -DF_CPU=$(CLOCK)
|
||||
|
||||
@ -40,7 +40,7 @@ all: $(HEX) lst
|
||||
|
||||
$(ELF): $(OBJECTS)
|
||||
@echo "ELF"
|
||||
@$(COMPILE) -o $(ELF) $(OBJECTS) $(LIBS)
|
||||
@$(COMPILE) $(LDFLAGS) -o $(ELF) $(OBJECTS) $(LIBS)
|
||||
|
||||
$(HEX): $(ELF)
|
||||
@echo "HEX"
|
||||
@ -65,7 +65,7 @@ lst: $(NAME).lst
|
||||
|
||||
flash: all
|
||||
@echo "Flash"
|
||||
@$(AVRDUDE) -U flash:w:$(HEX):i
|
||||
$(AVRDUDE) -U flash:w:$(HEX):i
|
||||
|
||||
clean:
|
||||
@echo "Clean"
|
||||
|
||||
21
includes.h
21
includes.h
@ -48,6 +48,27 @@
|
||||
#define STPRS_OFF() do{PORTD |= 0xfc; PORTC |= 0x0f;}while(0)
|
||||
#define DDRAB DDRA
|
||||
#define PORTAB PORTA
|
||||
// 8535 have common irq register for all timers
|
||||
#define TIMSK0 TIMSK
|
||||
#define TIMSK1 TIMSK
|
||||
#define UCSR0A UCSRA
|
||||
#define UCSR0B UCSRB
|
||||
#define UCSR0C UCSRC
|
||||
#define UDRIE0 UDRIE
|
||||
#define FE0 FE
|
||||
#define UPE0 PE
|
||||
#define DOR0 DOR
|
||||
#define UDRIE0 UDRIE
|
||||
#define UDR0 UDR
|
||||
#define UBRR0H UBRRH
|
||||
#define UBRR0L UBRRL
|
||||
#define U2X0 U2X
|
||||
#define UCSZ01 UCSZ1
|
||||
#define UCSZ00 UCSZ0
|
||||
#define RXEN0 RXEN
|
||||
#define TXEN0 TXEN
|
||||
#define RXCIE0 RXCIE
|
||||
|
||||
#define LED1_PIN (_BV(0))
|
||||
#define LED2_PIN (_BV(1))
|
||||
#define LED3_PIN (_BV(2))
|
||||
|
||||
11
main.c
11
main.c
@ -45,6 +45,7 @@ int main() {
|
||||
|
||||
/** USART config **/
|
||||
// set baudrate (using macros from util/setbaud.h)
|
||||
#if !defined (__AVR_ATmega8535__)
|
||||
UBRR0H = UBRRH_VALUE;
|
||||
UBRR0L = UBRRL_VALUE;
|
||||
|
||||
@ -53,6 +54,11 @@ int main() {
|
||||
#else
|
||||
UCSR0A &= ~(_BV(U2X0));
|
||||
#endif
|
||||
#else // __AVR_ATmega8535__
|
||||
UCSRA &= ~(_BV(U2X0));
|
||||
UBRRH = 0;
|
||||
UBRRL = 51;
|
||||
#endif
|
||||
UCSR0C = _BV(UCSZ01) | _BV(UCSZ00); // 8-bit data
|
||||
UCSR0B = _BV(RXEN0) | _BV(TXEN0) | _BV(RXCIE0); // Enable RX and TX, enable RX interrupt
|
||||
|
||||
@ -70,7 +76,9 @@ int main() {
|
||||
stepper_setup();
|
||||
|
||||
sei(); // enable interrupts
|
||||
|
||||
wdt_enable(WDTO_2S); // start watchdog
|
||||
usart_send("Scorpio platform ready\n");
|
||||
|
||||
while(1){
|
||||
wdt_reset();
|
||||
@ -104,4 +112,7 @@ ISR(TIMER0_OVF_vect){
|
||||
if(shi_counter == LEDs[1]) PORTAB &= ~LED2_PIN;
|
||||
if(shi_counter == LEDs[2]) PORTAB &= ~LED3_PIN;
|
||||
++shi_counter;
|
||||
// #if defined (__AVR_ATmega8535__)
|
||||
// TCNT0 += 128;
|
||||
// #endif
|
||||
}
|
||||
|
||||
10
proto.c
10
proto.c
@ -95,8 +95,9 @@ uint8_t process_commands(char *cmd){
|
||||
char s = *cmd;
|
||||
cmd = omit_whitespace(cmd + 1);
|
||||
switch(s){
|
||||
case '0':
|
||||
case '0': // stop motors
|
||||
DBG("restart");
|
||||
stop_motors();
|
||||
break;
|
||||
case '7':
|
||||
DBG("Shutter");
|
||||
@ -145,9 +146,14 @@ void process_string(){
|
||||
noerr = 0;
|
||||
}
|
||||
if(rx_bufsize < 3 || rx_buffer[0] != '[' || rx_buffer[rx_bufsize - 2] != ']'){
|
||||
#ifdef EBUG
|
||||
usart_send(rx_buffer);
|
||||
#endif
|
||||
if(!chk_stpr_cmd(rx_buffer[0])){
|
||||
DBG("Enter \"[cmd]\"\n");
|
||||
}
|
||||
//if(rx_buffer[0] == 't'){ print_time(); return; }
|
||||
rx_bufsize = 0;
|
||||
DBG("Enter \"[cmd]\"\n");
|
||||
noerr = 0;
|
||||
}
|
||||
if(noerr){ // echo back given string
|
||||
|
||||
391
scorpio.hex
391
scorpio.hex
@ -1,201 +1,192 @@
|
||||
:100000000C9434000C9451000C9451000C94510049
|
||||
:100010000C9451000C9451000C9451000C9451001C
|
||||
:100020000C9451000C9451000C9451000C94B601A6
|
||||
:100030000C9451000C9451000C9451000C945100FC
|
||||
:100040000C9498030C9451000C942D030C946203AF
|
||||
:100050000C9451000C9451000C9451000C945100DC
|
||||
:100060000C9451000C94510011241FBECFEFD8E026
|
||||
:10007000DEBFCDBF11E0A0E0B1E0E8EBFBE002C0E5
|
||||
:1000800005900D92AA3BB107D9F722E0AAEBB1E0A7
|
||||
:1000900001C01D92A530B207E1F70E942A050C9419
|
||||
:1000A000DA050C94000086B184FF04C085FF04C00B
|
||||
:1000B00080E0089581E0089582E00895E1E8F0E0AD
|
||||
:1000C00080818860808380ED97E0909389008093A1
|
||||
:1000D0008800808182608083EFE6F0E0808182602A
|
||||
:1000E000808388B1806388B90895CF93DF9300D06F
|
||||
:1000F00000D0CDB7DEB7BE016D5F7F4F0E94E60234
|
||||
:100100008823B1F16B817C81683F8FEF780764F1C0
|
||||
:100110006F3F8FE7780741F1665F7F4F8FEF9FEF6B
|
||||
:100120000E946B057A83698380916F008D7F809335
|
||||
:100130006F0089819A819093890080938800109242
|
||||
:1001400085001092840080916F00826080936F0020
|
||||
:100150008CE091E00E94C50162E0CE0101960E9410
|
||||
:10016000660287EB91E002C08EE191E00E94C5013A
|
||||
:1001700080E00F900F900F900F90DF91CF91089536
|
||||
:10018000CF93DF93CDB7DEB72C970FB6F894DEBFD1
|
||||
:100190000FBECDBF9FEF980F973020F59BB19C6F9E
|
||||
:1001A0009BB99BB122E030E0082E01C0220F0A94D7
|
||||
:1001B000EAF7209529232BB99CE0EFE2F1E0DE017C
|
||||
:1001C000119601900D929A95E1F7805D8C830E94C3
|
||||
:1001D0005300811101C083E0805D8987CE010196C3
|
||||
:1001E0000E94C5012C960FB6F894DEBF0FBECDBF9E
|
||||
:1001F000DF91CF9108958091BB010E94C0008BB127
|
||||
:100200008C6F8BB988B1807F88B9EFE6F0E0808190
|
||||
:100210008D7F80831092BA011092E3011092E20167
|
||||
:100220001092BD011092BB0108951F93CF93DF93ED
|
||||
:10023000182FEB018FEF810F863008F04AC020970E
|
||||
:1002400009F447C08091E2019091E301892B09F004
|
||||
:1002500040C080916F008D7F80936F008BB18C6F59
|
||||
:100260008BB988B1807F88B92BB182E090E0012EF4
|
||||
:1002700001C0880F0A94EAF7809582238BB90E9407
|
||||
:1002800053001093BB01882379F0813021F41C16B0
|
||||
:100290001D0664F01CC0D7FF1AC0D195C195D109C5
|
||||
:1002A00081E08093BC0104C0D7FDF7CF1092BC0160
|
||||
:1002B000D093E301C093E201109285001092840074
|
||||
:1002C00080916F00826080936F0081E003C00E9484
|
||||
:1002D000FB0080E0DF91CF911F9108951092BA0149
|
||||
:1002E00088B1E091BD010E2E000CFF0BEC5FFE4FBC
|
||||
:1002F000807F9081892B88B90E9453002091BC0196
|
||||
:100300009091BD012223B9F0915097FD03C09093C5
|
||||
:10031000BD010DC097E09093BD012091E2013091A5
|
||||
:10032000E301215031093093E3012093E201813050
|
||||
:10033000B1F40C94FB009F5F98301CF49093BD01C6
|
||||
:100340000CC01092BD012091E2013091E3012150D7
|
||||
:1003500031093093E3012093E201823051F380911F
|
||||
:10036000E2019091E301892B21F308951F920F92EE
|
||||
:100370000FB60F9211248F9381E08093BA018F9171
|
||||
:100380000F900FBE0F901F9018952091000120FF35
|
||||
:10039000FCCF209100012A7F209300011092BE0122
|
||||
:1003A0001092BF01DC018091BF01803278F48D9101
|
||||
:1003B000882361F0E091BF01F0E0EF53FE4F8083AE
|
||||
:1003C0008091BF018F5F8093BF01EDCF8091BF010E
|
||||
:1003D000803251F41092BF018091000181608093BE
|
||||
:1003E000000181E090E008958091C10080628093D7
|
||||
:1003F000C10080E090E008958F929F92AF92BF92EB
|
||||
:10040000DF92EF92FF920F931F93CF93DF93CDB7BD
|
||||
:10041000DEB72C970FB6F894DEBF0FBECDBF1C869B
|
||||
:1004200097FF0AC090958095709561957F4F8F4F8B
|
||||
:100430009F4FDD24D39401C0D12C0BE03AE0832EF2
|
||||
:10044000912CA12CB12C1FEF100FEE24E394F12C72
|
||||
:10045000EC0EFD1EE10EF11CA50194010E94A10508
|
||||
:10046000605DF7016083B901CA01611571058105FD
|
||||
:10047000910521F0012F1111E6CF0EC0112361F07B
|
||||
:10048000DD2051F01EEF100FE1E0F0E0EC0FFD1F5A
|
||||
:10049000E10FF11D8DE2808381E090E08C0F9D1FC4
|
||||
:1004A000810F911D0E94C5012C960FB6F894DEBFF6
|
||||
:1004B0000FBECDBFDF91CF911F910F91FF90EF90B5
|
||||
:1004C000DF90BF90AF909F908F9008958F929F92F2
|
||||
:1004D000AF92BF92CF92DF92FF920F931F93CF9371
|
||||
:1004E000DF93CDB7DEB72B970FB6F894DEBF0FBE04
|
||||
:1004F000CDBFDC01633009F44AC08FEF860F843032
|
||||
:1005000008F045C0FE013196CE010C968F01119284
|
||||
:100510008E179F07E1F7623039F0643051F0613097
|
||||
:1005200069F46C9170E002C06D917C9180E090E084
|
||||
:1005300008C06D917D918D919C9103C060E070E049
|
||||
:10054000CB016E012BE0C20ED11C29E0F22E3AE065
|
||||
:10055000832E912CA12CB12CFA94A50194010E9418
|
||||
:100560007F05605DF60162936F01B901CA016115F3
|
||||
:1005700071058105910519F0FFEFFF12EDCF8F2D69
|
||||
:10058000FF0C990B0196800F911F0E94C5012B96BD
|
||||
:100590000FB6F894DEBF0FBECDBFDF91CF911F9194
|
||||
:1005A0000F91FF90DF90CF90BF90AF909F908F9072
|
||||
:1005B0000895FC012081203211F40196FACF37EF23
|
||||
:1005C000320F3230D0F32D30C1F308950F931F93C3
|
||||
:1005D000CF93DF93EB01FC0120812D3219F40196BA
|
||||
:1005E00011E001C010E0FC0120E030E0A90181E051
|
||||
:1005F000019190ED900F9A30C0F4AAE0B0E00E9413
|
||||
:10060000C005DC01CB01800F911DA11DB11D9C0116
|
||||
:10061000AD01205331094109510980E0211590E8CD
|
||||
:1006200039074105510524F310C081110EC0112373
|
||||
:1006300039F050954095309521953F4F4F4F5F4F82
|
||||
:10064000209729F03983288302C080E001C081E02F
|
||||
:10065000DF91CF911F910F9108951F920F920FB6C6
|
||||
:100660000F9211248F939F93EF93FF939091C60065
|
||||
:100670008091C0008C71C1F4E091C00181E08E0FC7
|
||||
:100680008093C001F0E0EC51FE4F90839A3021F44A
|
||||
:100690008091000182600BC08091C001803249F4DA
|
||||
:1006A00080910001826103C0809100018A60809383
|
||||
:1006B0000001FF91EF919F918F910F900FBE0F90CE
|
||||
:1006C0001F9018951F920F920FB60F9211248F93BF
|
||||
:1006D0009F93EF93FF938091BF018823B1F0E09146
|
||||
:1006E000BE0181E08E0F8093BE01F0E0EF53FE4F1C
|
||||
:1006F00080818093C6009091BE018091BF019813C4
|
||||
:100700000EC01092BE011092BF018091C1008F7D7A
|
||||
:100710008093C10080910001816080930001FF916E
|
||||
:10072000EF919F918F910F900FBE0F901F90189592
|
||||
:100730001F920F920FB60F9211248F939F93809167
|
||||
:10074000E101811103C085B1886385B990910101F0
|
||||
:100750008091E101981301C02B9890910201809142
|
||||
:10076000E101981301C02C98909103018091E1015F
|
||||
:10077000981301C02D988091E1018F5F8093E10172
|
||||
:100780009F918F910F900FBE0F901F901895CF9350
|
||||
:10079000DF9300D01F92CDB7DEB7FC01908180EDD2
|
||||
:1007A000890F8B839153963078F5CF0101960E9483
|
||||
:1007B000D902BE016F5F7F4F0E94E602882321F1BC
|
||||
:1007C0008BE391E00E94C50161E0CE0103960E9497
|
||||
:1007D000660287E491E00E94C50169817A81072E53
|
||||
:1007E000000C880B990B0E94FC018DE491E00E94A3
|
||||
:1007F000C50169817A818B816115710519F00E94AB
|
||||
:10080000150103C00E94C00080E00F900F900F9070
|
||||
:10081000DF91CF910895CF93DF93CDB7DEB72C97BB
|
||||
:100820000FB6F894DEBF0FBECDBFFC0180818D32C4
|
||||
:10083000A1F48CE0E4E5F1E0DE01119601900D9267
|
||||
:100840008A95E1F74C8385B1682311F080E38987AD
|
||||
:10085000CE0101960E94C5010BC0803319F485B109
|
||||
:10086000682B05C0813331F485B16095682365B983
|
||||
:1008700081E001C080E02C960FB6F894DEBF0FBE79
|
||||
:10088000CDBFDF91CF9108951F93CF93DF9300D019
|
||||
:10089000CDB7DEB7162FBE016F5F7F4F0E94E60215
|
||||
:1008A000882359F089819A818F3F910509F028F4B6
|
||||
:1008B000E12FF0E0EF5FFE4F80830F900F90DF910C
|
||||
:1008C000CF911F9108950F931F93CF9301960E948C
|
||||
:1008D000D902FC01C0812FEC2C0F263028F4CF91D7
|
||||
:1008E0001F910F910C94C70301960E94D9028C01AD
|
||||
:1008F000C93389F15CF4C733E9F01CF5C03309F062
|
||||
:1009000045C080E691E00E94C5013AC0C23651F16F
|
||||
:100910003CF4C136D9F5CF911F910F910C9475001D
|
||||
:10092000C33631F1C43691F584E891E00E94C501E7
|
||||
:1009300062E023C088E691E00E94C50147E364E0DD
|
||||
:1009400006C080E791E00E94C50148E362E0C8016B
|
||||
:100950000E940B0415C085E791E00E94C50149E3A0
|
||||
:1009600061E0F5CF8AE791E00E94C50160E005C033
|
||||
:100970008FE791E00E94C50161E0C8010E94440434
|
||||
:1009800087EB91E00E94C50181E001C080E0CF913A
|
||||
:100990001F910F9108950F931F93CF9380910001A2
|
||||
:1009A00081FF54C0C091000180910001857E809339
|
||||
:1009B0000001C4FF06C089E891E00E94C50180E003
|
||||
:1009C00001C081E0C3FF05C080EA91E00E94C5013B
|
||||
:1009D00080E09091C001933060F09091E4019B35EC
|
||||
:1009E00041F4E091C001F0E0EE51FE4F90819D3561
|
||||
:1009F00049F01092C0018AEA91E0CF911F910F91C6
|
||||
:100A00000C94C501882311F1E091C001F0E0EC5194
|
||||
:100A1000FE4F108285EE91E00E94D9028C01FC010C
|
||||
:100A20008081823399F4C091C0011092C00184EE9C
|
||||
:100A300091E00E94C501EC2FF0E0EE51FE4F1082D4
|
||||
:100A4000C801CF911F910F910C946304CF911F9116
|
||||
:100A50000F9108958BB18C6F8BB988B1807F88B965
|
||||
:100A60008CEF8AB9CFE0C7B985B1876085B98FE3CC
|
||||
:100A700084B91092C50087E68093C4008091C000BD
|
||||
:100A80008D7F8093C00086E08093C20088E98093C8
|
||||
:100A9000C10085B5826085BD80916E0081608093C4
|
||||
:100AA0006E000E945E00789488E190E00FB6F894A2
|
||||
:100AB000A895809360000FBEC0936000A8958091B8
|
||||
:100AC000BA0181110E946E018091000181FFF6CF71
|
||||
:100AD0000E94CB04F3CFAA1BBB1B51E107C0AA1F86
|
||||
:100AE000BB1FA617B70710F0A61BB70B881F991FCF
|
||||
:100AF0005A95A9F780959095BC01CD010895A1E282
|
||||
:100B00001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F87
|
||||
:100B1000FF1FA217B307E407F50720F0A21BB30BD2
|
||||
:100B2000E40BF50B661F771F881F991F1A9469F74E
|
||||
:100B300060957095809590959B01AC01BD01CF01AA
|
||||
:100B40000895052E97FB1EF400940E94B80557FDEA
|
||||
:100B500007D00E947F0507FC03D04EF40C94B80523
|
||||
:100B600050954095309521953F4F4F4F5F4F0895D9
|
||||
:100B700090958095709561957F4F8F4F9F4F089509
|
||||
:100B80000E94CB05A59F900DB49F900DA49F800D52
|
||||
:100B9000911D11240895A29FB001B39FC001A39F8E
|
||||
:100BA000700D811D1124911DB29F700D811D1124A6
|
||||
:080BB000911D0895F894FFCF98
|
||||
:100BB80001141414080C0406020301095370656536
|
||||
:100BC80064206368616E67656420746F2000426109
|
||||
:100BD800642073706565642076616C75650A005BD6
|
||||
:100BE8003220302053743D305D0A004D6F76652009
|
||||
:100BF8006D6F746F72200020666F722000737465C9
|
||||
:100C080070730A005B32204E2053743D315D0A0038
|
||||
:100C180072657374617274005368757474657200D8
|
||||
:100C28004E656F6E00466C6174004C454431004C53
|
||||
:100C3800454432004C45443300496E707574206257
|
||||
:100C48007566666572206F766572666C6F770A00E6
|
||||
:100C58005278206572726F720A00456E7465722050
|
||||
:0A0C6800225B636D645D220A000048
|
||||
:1000000014C02EC02DC02CC02BC02AC041C328C094
|
||||
:1000100027C04DC325C084C1B6C122C021C020C0A5
|
||||
:100020001FC01EC01DC01CC01BC011241FBECFE5B9
|
||||
:10003000D2E0DEBFCDBF11E0A0E6B0E0E0EEFAE036
|
||||
:1000400002C005900D92AC36B107D9F721E0ACE6BD
|
||||
:10005000B1E001C01D92A73BB207E1F7A1D43EC5B4
|
||||
:10006000CFCF2091600020FFFCCF209160002A7F3D
|
||||
:100070002093600010926C0110926D01DC01809160
|
||||
:100080006D01803278F48D91882361F0E0916D01EB
|
||||
:10009000F0E0E159FE4F808380916D018F5F809386
|
||||
:1000A0006D01EDCF80916D01803251F410926D01A0
|
||||
:1000B0008091600081608093600081E090E008950D
|
||||
:1000C000559A80E090E008958F929F92AF92BF92F0
|
||||
:1000D000DF92EF92FF920F931F93CF93DF93CDB7F1
|
||||
:1000E000DEB72C970FB6F894DEBF0FBECDBF1C86CF
|
||||
:1000F00097FF0AC090958095709561957F4F8F4FBF
|
||||
:100100009F4FDD24D39401C0D12C0BE03AE0832E25
|
||||
:10011000912CA12CB12C1FEF100FEE24E394F12CA5
|
||||
:10012000EC0EFD1EE10EF11CA5019401A5D4605D4D
|
||||
:10013000F7016083B901CA01611571058105910557
|
||||
:1001400021F0012F1111E7CF0EC0112361F0DD2046
|
||||
:1001500051F01EEF100FE1E0F0E0EC0FFD1FE10F9A
|
||||
:10016000F11D8DE2808381E090E08C0F9D1F810F57
|
||||
:10017000911D77DF2C960FB6F894DEBF0FBECDBF72
|
||||
:10018000DF91CF911F910F91FF90EF90DF90BF9083
|
||||
:10019000AF909F908F9008958F929F92AF92BF9251
|
||||
:1001A000CF92DF92FF920F931F93CF93DF93CDB740
|
||||
:1001B000DEB72B970FB6F894DEBF0FBECDBFDC01C4
|
||||
:1001C000633009F448C08FEF860F843008F043C0D5
|
||||
:1001D000FE013196CE010C968F0111928E179F076A
|
||||
:1001E000E1F7623039F0643051F0613069F46C91BC
|
||||
:1001F00070E002C06D917C9180E090E008C06D914C
|
||||
:100200007D918D919C9103C060E070E0CB016E0107
|
||||
:100210002BE0C20ED11C29E0F22E3AE0832E912C65
|
||||
:10022000A12CB12CFA94A501940104D4605DF601CF
|
||||
:1002300062936F01B901CA016115710581059105CC
|
||||
:1002400019F0FFEFFF12EECF8F2DFF0C990B0196E7
|
||||
:10025000800F911F06DF2B960FB6F894DEBF0FBEFE
|
||||
:10026000CDBFDF91CF911F910F91FF90DF90CF9085
|
||||
:10027000BF90AF909F908F900895FC012081203215
|
||||
:1002800011F40196FACF37EF320F3230D0F32D3020
|
||||
:10029000C1F308950F931F93CF93DF93EB01FC01FC
|
||||
:1002A00020812D3219F4019611E001C010E0FC010B
|
||||
:1002B00020E030E0A90181E0019190ED900F9A30AB
|
||||
:1002C000B8F4AAE0B0E0F4D3DC01CB01800F911DBB
|
||||
:1002D000A11DB11D9C01AD012053310941095109F6
|
||||
:1002E00080E0211590E83907410551052CF310C035
|
||||
:1002F00081110EC0112339F050954095309521950C
|
||||
:100300003F4F4F4F5F4F209729F03983288302C01A
|
||||
:1003100080E001C081E0DF91CF911F910F9108959E
|
||||
:100320001F920F920FB60F9211248F939F93EF930A
|
||||
:10033000FF939CB18BB18C71C1F4E0916E0181E0AF
|
||||
:100340008E0F80936E01F0E0EC56FE4F90839A3052
|
||||
:1003500021F48091600082600BC080916E01803238
|
||||
:1003600049F480916000826103C0809160008A60DE
|
||||
:1003700080936000FF91EF919F918F910F900FBE3E
|
||||
:100380000F901F9018951F920F920FB60F92112485
|
||||
:100390008F939F93EF93FF9380916D018823A9F032
|
||||
:1003A000E0916C0181E08E0F80936C01F0E0E159E7
|
||||
:1003B000FE4F80818CB990916C0180916D019813F2
|
||||
:1003C0000AC010926C0110926D01559880916000E6
|
||||
:1003D000816080936000FF91EF919F918F910F90CA
|
||||
:1003E0000FBE0F901F90189583B384FF04C085FF44
|
||||
:1003F00004C080E0089581E0089582E008958EB5FC
|
||||
:1004000088608EBD80ED97E09BBD8ABD8EB5826011
|
||||
:100410008EBD89B7806189BF85B3806385BB089530
|
||||
:10042000CF93DF9300D000D0CDB7DEB7BE016D5FB4
|
||||
:100430007F4F30DF882351F16B817C81683F8FEFE4
|
||||
:1004400078070CF16F3F8FE77807E9F0665F7F4F21
|
||||
:100450008FEF9FEFDBD27A83698389B78F7E89BF65
|
||||
:1004600089819A819BBD8ABD1DBC1CBC89B78061F6
|
||||
:1004700089BF86EA90E0F5DD62E0CE0101968CDE70
|
||||
:1004800089E691E002C088EB90E0EBDD80E00F9020
|
||||
:100490000F900F900F90DF91CF910895CF93DF933E
|
||||
:1004A000CDB7DEB72C970FB6F894DEBF0FBECDBF29
|
||||
:1004B0009FEF980F973010F592B39C6F92BB92B359
|
||||
:1004C00022E030E0082E01C0220F0A94EAF72095BE
|
||||
:1004D000292322BB9CE0E9ECF0E0DE0111960190BB
|
||||
:1004E0000D929A95E1F7805D8C837EDF811101C0CA
|
||||
:1004F00083E0805D8987CE010196B3DD2C960FB62F
|
||||
:10050000F894DEBF0FBECDBFDF91CF9108958091EB
|
||||
:100510009001C4DF82B38C6F82BB85B38F6085BBD3
|
||||
:1005200089B78F7E89BF10928F011092B601109209
|
||||
:10053000B501109292011092900108951F93CF93EC
|
||||
:10054000DF93182FEB018FEF810F863008F040C04A
|
||||
:100550002097F1F18091B5019091B601892BC1F5F9
|
||||
:1005600089B78F7E89BF82B38C6F82BB85B38F6062
|
||||
:1005700085BB22B382E090E0012E01C0880F0A946F
|
||||
:10058000EAF78095822382BB2FDF109390018823A6
|
||||
:1005900079F0813021F41C161D0664F018C0D7FFD5
|
||||
:1005A00016C0D195C195D10981E08093910104C015
|
||||
:1005B000D7FDF7CF10929101D093B601C093B5014A
|
||||
:1005C0001DBC1CBC89B7806189BF81E002C09FDF70
|
||||
:1005D00080E0DF91CF911F91089510928F0185B334
|
||||
:1005E00090919201E0916100F0916200E90FF11D9C
|
||||
:1005F00097FDFA95807F9081892B85BBF5DE209150
|
||||
:100600009101909192012223B1F0915097FD03C086
|
||||
:10061000909392010DC097E0909392012091B501C3
|
||||
:100620003091B601215031093093B6012093B501C4
|
||||
:100630008130A9F46CCF9F5F98301CF490939201A5
|
||||
:100640000CC0109292012091B5013091B601215059
|
||||
:1006500031093093B6012093B501823059F380916E
|
||||
:10066000B5019091B601892B29F308959FE9980F60
|
||||
:10067000983060F428E08202C0011124825A92402E
|
||||
:10068000909362008093610081E0089580E0089576
|
||||
:100690001F920F920FB60F9211248F9381E08093D7
|
||||
:1006A0008F018F910F900FBE0F901F9018951F9282
|
||||
:1006B0000F920FB60F9211248F939F938091930105
|
||||
:1006C000811103C08BB387608BBB909163008091D5
|
||||
:1006D0009301981301C0D898909164008091930180
|
||||
:1006E000981301C0D9989091650080919301981357
|
||||
:1006F00001C0DA98809193018F5F809393019F915D
|
||||
:100700008F910F900FBE0F901F901895CF93DF938E
|
||||
:1007100000D01F92CDB7DEB7FC01908180ED890F2C
|
||||
:100720008B839153963030F5CF010196A6DDBE0143
|
||||
:100730006F5F7F4FAFDD8823E9F08DEE90E091DCB5
|
||||
:1007400061E0CE01039628DD89EF90E08ADC6981C3
|
||||
:100750007A81072E000C880B990BB6DC8FEF90E0A6
|
||||
:1007600080DC69817A818B816115710511F0E6DE8B
|
||||
:1007700002C094DE80E00F900F900F90DF91CF9138
|
||||
:100780000895CF93DF93CDB7DEB72C970FB6F894CB
|
||||
:10079000DEBF0FBECDBFFC0180818D3299F48CE0AD
|
||||
:1007A000E6E0F1E0DE01119601900D928A95E1F705
|
||||
:1007B0004C838BB3682311F080E38987CE010196C7
|
||||
:1007C00050DC0BC0803319F48BB3682B05C0813328
|
||||
:1007D00031F48BB3609568236BBB81E001C080E08E
|
||||
:1007E0002C960FB6F894DEBF0FBECDBFDF91CF9130
|
||||
:1007F00008951F93CF93DF9300D0CDB7DEB7162FA8
|
||||
:10080000BE016F5F7F4F46DD882359F089819A8151
|
||||
:100810008F3F910509F028F4E12FF0E0ED59FF4FEB
|
||||
:1008200080830F900F90DF91CF911F9108950F93C8
|
||||
:100830001F93CF93019621DDFC01C0812FEC2C0F7B
|
||||
:10084000263020F4CF911F910F9160CF019615DDD6
|
||||
:100850008C01C93359F154F4C733D1F0FCF4C033DF
|
||||
:10086000D9F582E191E0FDDB52DE31C0C23621F1E3
|
||||
:1008700034F4C13689F5CF911F910F91D1CDC33694
|
||||
:1008800001F1C43649F586E391E0EBDB62E01DC07F
|
||||
:100890008AE191E0E6DB47E360E805C082E291E0AF
|
||||
:1008A000E0DB48E360E4C8016CDF11C087E291E05F
|
||||
:1008B000D8DB49E360E2F7CF8CE291E0D2DB60E085
|
||||
:1008C00004C081E391E0CDDB61E0C80192DF89E6FD
|
||||
:1008D00091E0C7DB81E001C080E0CF911F910F91D3
|
||||
:1008E00008950F931F93CF938091600081FF54C0B0
|
||||
:1008F000C091600080916000857E80936000C4FF9D
|
||||
:1009000005C08BE391E0ADDB80E001C081E0C3FF77
|
||||
:1009100004C082E591E0A5DB80E090916E01933008
|
||||
:1009200060F0909194019B3541F4E0916E01F0E00C
|
||||
:10093000EE56FE4F90819D3571F084E991E091DB98
|
||||
:100940008091940193DE811103C08CE591E089DBF5
|
||||
:1009500010926E0121C08823F9F0E0916E01F0E061
|
||||
:10096000EC56FE4F108285E991E087DC8C01FC019A
|
||||
:100970008081823389F4C0916E0110926E0184E906
|
||||
:1009800091E06FDBEC2FF0E0EE56FE4F1082C801D5
|
||||
:10099000CF911F910F914BCFCF911F910F91089540
|
||||
:1009A00082B38C6F82BB85B38F6085BB8CEF81BBBC
|
||||
:1009B000CFE0C4BB8BB3806E8BBB87EE8ABB5998EC
|
||||
:1009C0008FE780BD81E089B986E080BD88E98AB97A
|
||||
:1009D00083B7826083BF89B7816089BF10DD789457
|
||||
:1009E00088E190E00FB6F894A89581BD0FBEC1BD17
|
||||
:1009F00085ED90E036DBA89580918F018111EDDDCA
|
||||
:100A00008091600081FFF7CF6CDFF5CFAA1BBB1B85
|
||||
:100A100051E107C0AA1FBB1FA617B70710F0A61BFE
|
||||
:100A2000B70B881F991F5A95A9F780959095BC011F
|
||||
:100A3000CD010895A1E21A2EAA1BBB1BFD010DC01A
|
||||
:100A4000AA1FBB1FEE1FFF1FA217B307E407F5077E
|
||||
:100A500020F0A21BB30BE40BF50B661F771F881F5A
|
||||
:100A6000991F1A9469F760957095809590959B01F0
|
||||
:100A7000AC01BD01CF010895052E97FB16F400943B
|
||||
:100A80000FD057FD05D0D6DF07FC02D046F408C0D2
|
||||
:100A900050954095309521953F4F4F4F5F4F0895AA
|
||||
:100AA00090958095709561957F4F8F4F9F4F0895DA
|
||||
:100AB00009D0A59F900DB49F900DA49F800D911D0E
|
||||
:100AC00011240895A29FB001B39FC001A39F01D03C
|
||||
:100AD000B29F700D811D1124911D0895F894FFCFD0
|
||||
:100AE000016600141414080C04060203010902062E
|
||||
:100AF000040C08090103080901030206040C080A92
|
||||
:100B000002060405010907030B090D0C0E060D0969
|
||||
:100B10000B0307060E0C07060E0C0D090B03070549
|
||||
:100B20000D090B0A0E065370656564206368616EDB
|
||||
:100B300067656420746F200042616420737065658E
|
||||
:100B4000642076616C75650A005B32203020537436
|
||||
:100B50003D305D0A0053636F7270696F20706C6185
|
||||
:100B600074666F726D2072656164790A004D6F76EC
|
||||
:100B700065206D6F746F72200020666F72200073A5
|
||||
:100B8000746570730A005B32204E2053743D315DF2
|
||||
:100B90000A007265737461727400536875747465C9
|
||||
:100BA00072004E656F6E00466C6174004C454431B6
|
||||
:100BB000004C454432004C45443300496E70757416
|
||||
:100BC00020627566666572206F766572666C6F77F7
|
||||
:100BD0000A005278206572726F720A00456E746561
|
||||
:0C0BE0007220225B636D645D220A00003D
|
||||
:00000001FF
|
||||
|
||||
31
stepper.c
31
stepper.c
@ -57,8 +57,21 @@
|
||||
// [1324] = 1000, 1010, 0010, 0110, 0100, 0101, 0001, 1001 - bipolar
|
||||
// 1000, 1010, 0010, 0110, 0100, 0101, 0001, 1001 - half-step
|
||||
// 1010, 0110, 0101, 1001 - full step
|
||||
static const uint8_t usteps[8] = {8, 12, 4, 6, 2, 3, 1, 9}; // ULN - unipolar, active 1
|
||||
//static const uint8_t usteps[8] = {8, 12, 4, 6, 2, 3, 1, 9}; // ULN - unipolar, active 1
|
||||
//static const uint8_t usteps[8] = {7, 3, 11, 9, 13, 12, 14, 6}; // unipolar, active is 0
|
||||
static const uint8_t usteps_matrix[8][8] = {
|
||||
{0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001}, // [1234]
|
||||
{0b0010, 0b0110, 0b0100, 0b1100, 0b1000, 0b1001, 0b0001, 0b0011}, // [3214]
|
||||
{0b1000, 0b1001, 0b0001, 0b0011, 0b0010, 0b0110, 0b0100, 0b1100}, // [1432]
|
||||
{0b1000, 0b1010, 0b0010, 0b0110, 0b0100, 0b0101, 0b0001, 0b1001}, // [1324]
|
||||
// inversion: cat | sed -e 's/0b/x/g' -e 's/0/y/g' -e 's/1/0/g' -e 's/y/1/g' -e s'/x/0b/g'
|
||||
{0b0111, 0b0011, 0b1011, 0b1001, 0b1101, 0b1100, 0b1110, 0b0110}, // [1234]
|
||||
{0b1101, 0b1001, 0b1011, 0b0011, 0b0111, 0b0110, 0b1110, 0b1100}, // [3214]
|
||||
{0b0111, 0b0110, 0b1110, 0b1100, 0b1101, 0b1001, 0b1011, 0b0011}, // [1432]
|
||||
{0b0111, 0b0101, 0b1101, 0b1001, 0b1011, 0b1010, 0b1110, 0b0110}, // [1324]
|
||||
};
|
||||
|
||||
uint8_t const *usteps = usteps_matrix[0];
|
||||
|
||||
static int8_t Ustep = 0; // current microstep count
|
||||
uint16_t Steps_left; // steps left to proceed (absolute value)
|
||||
@ -67,8 +80,6 @@ static uint8_t cur_motor = 0; // current motor number
|
||||
|
||||
volatile uint8_t stepper_pulse = 0; // interrupt flag, used in main.c
|
||||
|
||||
static void stop_motors();
|
||||
|
||||
void stepper_setup(){
|
||||
TCCR1B |= _BV(WGM12); // configure timer1 for CTC mode, TOP is OCR1A
|
||||
OCR1A = 2000; // set the CTC compare value - 1kHz
|
||||
@ -145,7 +156,7 @@ uint8_t stepper_move(uint8_t Nmotor, int16_t Nsteps){
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void stop_motors(){
|
||||
void stop_motors(){
|
||||
stepper_get_esw(cur_motor);
|
||||
// turn off all pulses to place motor in free state & prevent undesirable behaviour
|
||||
STPRS_OFF();
|
||||
@ -202,9 +213,21 @@ void stepper_get_esw(uint8_t Nmotor){
|
||||
usart_send(str);
|
||||
}
|
||||
|
||||
/**
|
||||
* User can change current stepper phases table
|
||||
* N - position in table from 'a' (0) to 'h' (7)
|
||||
* return 1 if all OK
|
||||
*/
|
||||
uint8_t chk_stpr_cmd(char N){
|
||||
if(N < 'a' || N > 'h') return 0;
|
||||
usteps = usteps_matrix[N-'a'];
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Timer 1 used to generate stepper pulses
|
||||
*/
|
||||
ISR(TIMER1_COMPA_vect){
|
||||
stepper_pulse = 1; // say that we can generate next microstep
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user