![]() |
Forum Index : Microcontroller and PC projects : Armmite L4: V5.05.02 - 64 pin support
Page 1 of 2 ![]() ![]() |
|||||
Author | Message | ||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
Please find attached version 5.05.02. This now includes support for 64 pin variants, the STM32L433RCT6 and the STM32L431RCT6 as well as 48 pin and 32 pin. The software automatically configures for the number of pins. I've done the development on a STM32L431RCT6 on a breakout (pic below) but the code should run well on a NUCLEO-L433RC. With all the STM32L4 the mandatory connections are: all VSS and VCC including VSSA and VDDA, each pair decoupled close to the chip with 0.1uF ceramic caps BOOT0 10K to GND NRST 10K to VCC and direct to ST-LINK Console TX and RX to USB/UART (or ST-LINK) SWDIO and SWCLK to ST-LINK for programming 32KHz crystal to OSC32-IN and OSC32-OUT with 6pF caps to GND - NB this is essential for the firmware to run VBAT (N/A for 32-pin) to VCC or to 3V battery 2018-12-06_060203_ArmmiteL4.zip ![]() Pinout for the 64-pin chips is { NULL, 0, PUNUSED , NULL, 0,""}, // pin 1 VBAT { GPIOC, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C13"}, // pin 2 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 3 OSC32_IN { NULL, 0, PUNUSED , NULL, 0,""}, // pin 4 OSC32_OUT { NULL, 0, PUNUSED , NULL, 0,""}, // pin 5 PH0 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 6 PH1 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 7 NRST { GPIOC, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C0"}, // pin 8 { GPIOC, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C1"}, // pin 9 { GPIOC, GPIO_PIN_2, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C2"}, // pin 10 { GPIOC, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C3"}, // pin 11 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 12 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 13 VDD { GPIOA, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "A0"}, // pin 14 { GPIOA, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_6,"A1"}, // pin 15 SPI-CLK { NULL, 0, PUNUSED , NULL, 0,""}, // pin 16 CONSOLE-TX // { GPIOA, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_9,"A3"}, // pin 17 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 18 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 19 VDD { GPIOA, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_9,"A4"}, // pin 20 DAC-1 { GPIOA, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_10,"A5"}, // pin 21 DAC-2 { GPIOA, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_11,"A6"}, // pin 22 SPI-IN { GPIOA, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_12,"A7"}, // pin 23 SPI-OUT { GPIOC, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C4"}, // pin 24 { GPIOC, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C5"}, // pin 25 { GPIOB, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_15,"B0"}, // pin 26 { GPIOB, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_16,"B1"}, // pin 27 COUNT { NULL, 0, PUNUSED , NULL, 0,""}, // pin 28 { GPIOB, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B10"}, // pin 29 COM2-TX { GPIOB, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B11"}, // pin 30 COM2-RX { NULL, 0, PUNUSED , NULL, 0,""}, // pin 31 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 32 VDD // { GPIOB, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B12"}, // pin 33 { GPIOB, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B13"}, // pin 34 { GPIOB, GPIO_PIN_14, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B14"}, // pin 35 { GPIOB, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B15"}, // pin 36 { GPIOC, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C6"}, // pin 37 { GPIOC, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C7"}, // pin 38 { GPIOC, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C8"}, // pin 39 { GPIOC, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C9"}, // pin 40 { GPIOA, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A8"}, // pin 41 { GPIOA, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A9"}, // pin 42 COM1-TX { GPIOA, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A10"}, // pin 43 COM2-RX { GPIOA, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A11"}, // pin 44 { GPIOA, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A12"}, // pin 45 COM1-DE { NULL, 0, PUNUSED , NULL, 0,""}, // pin 46 SWDIO { NULL, 0, PUNUSED , NULL, 0,""}, // pin 47 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 48 VDD // { NULL, 0, PUNUSED , NULL, 0,""}, // pin 49 SWCLK { NULL, 0, PUNUSED , NULL, 0,""}, // pin 50 CONSOLE-RX { GPIOC, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C10"}, // pin 51 { GPIOC, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C11"}, // pin 52 { GPIOC, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C12"}, // pin 53 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 54 { GPIOB, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B3"}, // pin 55 SPI2-CLK { GPIOB, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B4"}, // pin 56 SPI2-IN { GPIOB, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B5"}, // pin 57 SPI2-OUT { GPIOB, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B6"}, // pin 58 I2C-SCL { GPIOB, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B7"}, // pin 59 I2C-SDA { NULL, 0, PUNUSED , NULL, 0,""}, // pin 60 BOOT0 { GPIOB, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B8"}, // pin 61 { GPIOB, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B9"}, // pin 62 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 63 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 64 VDD ![]() |
||||
sagt3k![]() Guru ![]() Joined: 01/02/2015 Location: ItalyPosts: 313 |
Hi matherp Great work ![]() Now we have all family 32/48/64pin STM32L4. In your roadmap, is the management of the usb? or these new micro with mmbasic will be so without the usb? Thanks Antonio |
||||
erbp Senior Member ![]() Joined: 03/05/2016 Location: AustraliaPosts: 195 |
There is a typo in the pinout chart - the "COM2-Rx" comment is shown twice, once for pin 30 and again for pin 43. It looks like pin 43 should be COM1-Rx, but that is only my guess. The same problem exists in the pinout chart for the 48 pin ARMmite L4 but the pin numbers are different of course. Phil. |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
The joys of cut and paste, yes it should be COM1-RX ![]() Here is updated firmware. Note that for the 64-pin the console-RX pin has changed to pin 17 to match the NUCLEO-L433RC. I've also changed the console-RX pin on the 48-pin to make wiring easier. Finally, I've corrected omissions in the analogue pins. 2018-12-06_194253_ArmmiteL4.zip 48-pin { NULL, 0, PUNUSED , NULL, 0,""}, // pin 1 VBAT { GPIOC, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C13"}, // pin 2 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 3 OSC32_IN { NULL, 0, PUNUSED , NULL, 0,""}, // pin 4 OSC32_OUT { NULL, 0, PUNUSED , NULL, 0,""}, // pin 5 PH0 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 6 PH1 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 7 NRST { NULL, 0, PUNUSED , NULL, 0,""}, // pin 8 VSSA { NULL, 0, PUNUSED , NULL, 0,""}, // pin 9 VDDA { GPIOA, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_5,"A0"}, // pin 10 { GPIOA, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_6,"A1"}, // pin 11 SPI-CLK { NULL, 0, PUNUSED , NULL, 0,""}, // pin 12 CONSOLE-TX { NULL, 0, PUNUSED , NULL, 0,""}, // pin 13 CONSOLE-RX { GPIOA, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_9,"A4"}, // pin 14 DAC-1 { GPIOA, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_10,"A5"}, // pin 15 DAC-2 { GPIOA, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_11,"A6"}, // pin 16 SPI-IN { GPIOA, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_12,"A7"}, // pin 17 SPI-OUT { GPIOB, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_15,"B0"}, // pin 18 { GPIOB, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_16,"B1"}, // pin 19 COUNT { GPIOB, GPIO_PIN_2, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B2"}, // pin 20 { GPIOB, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B10"}, // pin 21 COM2-TX { GPIOB, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B11"}, // pin 22 COM2-RX { NULL, 0, PUNUSED , NULL, 0,""}, // pin 23 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 24 VDD { GPIOB, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B12"}, // pin 25 { GPIOB, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B13"}, // pin 26 { GPIOB, GPIO_PIN_14, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B14"}, // pin 27 { GPIOB, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B15"}, // pin 28 { GPIOA, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A8"}, // pin 29 { GPIOA, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A9"}, // pin 30 COM1-TX { GPIOA, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A10"}, // pin 31 COM1-RX { GPIOA, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A11"}, // pin 32 { GPIOA, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A12"}, // pin 33 COM1-DE { NULL, 0, PUNUSED , NULL, 0,""}, // pin 34 SWDIO { NULL, 0, PUNUSED , NULL, 0,""}, // pin 35 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 36 VDD // { NULL, 0, PUNUSED , NULL, 0,""}, // pin 37 SWCLK { GPIOA, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A15"}, // pin 38 { GPIOB, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B3"}, // pin 39 SPI2-CLK { GPIOB, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B4"}, // pin 40 SPI2-IN { GPIOB, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B5"}, // pin 41 SPI2-OUT { GPIOB, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B6"}, // pin 42 I2C-SCL { GPIOB, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B7"}, // pin 43 I2C-SDA { NULL, 0, PUNUSED , NULL, 0,""}, // pin 44 BOOT0 { GPIOB, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B8"}, // pin 45 { GPIOB, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B9"}, // pin 46 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 47 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 48 VDD 64-pin { NULL, 0, PUNUSED , NULL, 0,""}, // pin 1 VBAT { GPIOC, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C13"}, // pin 2 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 3 OSC32_IN { NULL, 0, PUNUSED , NULL, 0,""}, // pin 4 OSC32_OUT { NULL, 0, PUNUSED , NULL, 0,""}, // pin 5 PH0 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 6 PH1 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 7 NRST { GPIOC, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_1, "C0"}, // pin 8 { GPIOC, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_2, "C1"}, // pin 9 { GPIOC, GPIO_PIN_2, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_3, "C2"}, // pin 10 { GPIOC, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_4, "C3"}, // pin 11 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 12 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 13 VDD { GPIOA, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_5, "A0"}, // pin 14 { GPIOA, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_6,"A1"}, // pin 15 SPI-CLK { NULL, 0, PUNUSED , NULL, 0,""}, // pin 16 CONSOLE-TX // { NULL, 0, PUNUSED , NULL, 0,""}, // pin 17 CONSOLE-RX { NULL, 0, PUNUSED , NULL, 0,""}, // pin 18 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 19 VDD { GPIOA, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_9, "A4"}, // pin 20 DAC-1 { GPIOA, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_10, "A5"}, // pin 21 DAC-2 { GPIOA, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_11, "A6"}, // pin 22 SPI-IN { GPIOA, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_12, "A7"}, // pin 23 SPI-OUT { GPIOC, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_13, "C4"}, // pin 24 { GPIOC, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_14, "C5"}, // pin 25 { GPIOB, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_15,"B0"}, // pin 26 { GPIOB, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_16,"B1"}, // pin 27 COUNT { NULL, 0, PUNUSED , NULL, 0,""}, // pin 28 { GPIOB, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B10"}, // pin 29 COM2-TX { GPIOB, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B11"}, // pin 30 COM2-RX { NULL, 0, PUNUSED , NULL, 0,""}, // pin 31 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 32 VDD // { GPIOB, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B12"}, // pin 33 { GPIOB, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B13"}, // pin 34 { GPIOB, GPIO_PIN_14, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B14"}, // pin 35 { GPIOB, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B15"}, // pin 36 { GPIOC, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C6"}, // pin 37 { GPIOC, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C7"}, // pin 38 { GPIOC, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C8"}, // pin 39 { GPIOC, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C9"}, // pin 40 { GPIOA, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A8"}, // pin 41 { GPIOA, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A9"}, // pin 42 COM1-TX { GPIOA, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A10"}, // pin 43 COM1-RX { GPIOA, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A11"}, // pin 44 { GPIOA, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A12"}, // pin 45 COM1-DE { NULL, 0, PUNUSED , NULL, 0,""}, // pin 46 SWDIO { NULL, 0, PUNUSED , NULL, 0,""}, // pin 47 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 48 VDD // { NULL, 0, PUNUSED , NULL, 0,""}, // pin 49 SWCLK { GPIOA, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"A15"}, // pin 50 { GPIOC, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C10"}, // pin 51 { GPIOC, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C11"}, // pin 52 { GPIOC, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT, NULL, 0, "C12"}, // pin 53 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 54 { GPIOB, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B3"}, // pin 55 SPI2-CLK { GPIOB, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B4"}, // pin 56 SPI2-IN { GPIOB, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B5"}, // pin 57 SPI2-OUT { GPIOB, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B6"}, // pin 58 I2C-SCL { GPIOB, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B7"}, // pin 59 I2C-SDA { NULL, 0, PUNUSED , NULL, 0,""}, // pin 60 BOOT0 { GPIOB, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B8"}, // pin 61 { GPIOB, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0,"B9"}, // pin 62 { NULL, 0, PUNUSED , NULL, 0,""}, // pin 63 VSS { NULL, 0, PUNUSED , NULL, 0,""}, // pin 64 VDD |
||||
CaptainBoing![]() Guru ![]() Joined: 07/09/2016 Location: United KingdomPosts: 2170 |
amazing! |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
Minor update that fixes a bug in COM2 for 48-pin and 64-pin parts - COM2 does not exist on 32 pin chips 2018-12-06_225032_ArmmiteL4.zip |
||||
sagt3k![]() Guru ![]() Joined: 01/02/2015 Location: ItalyPosts: 313 |
Hi matherp To have more analog possibility, it is thinkable to move SPI from PA1/6/7 to HW SPI2(PB10/14/15)?, but in PB10 i see com2-tx. On 48pin If we use actual SPI2 for external memory and SPI for other device, DAC etc remain a fee of analog pins free. What do you think about it? Thanks Antonio |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
Can't do anything about SPI and stay compatible with the 32-pin chip but what I can do is implement SPI3 for the 48-pin and 64-pin parts ![]() Version 5.05.03 2018-12-07_011215_ArmmiteL4.zip Same syntax as commands and functions SPI and SPI2 Pins are: Signal 48-pin 64-pin SPI3-CLK 26 34 SPI3-IN 27 35 SPI3-OUT 28 36 These pins are not analogue capable so by using SPI3 instead of SPI for your devices you free up 3 analogue pins |
||||
sagt3k![]() Guru ![]() Joined: 01/02/2015 Location: ItalyPosts: 313 |
Hi matherp Thank you, this is the best solution you could get. ![]() Some questions: - OPTION FLASH CSpin use only work only in SPI2, but we can use SPI2 for other device playing with different CS? - OPTION LCDPANEL with SPI(1)? - What about the PWM? do you already have an idea of which pins? Thanks Antonio |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
Minor update that now allows the RTC to be read at millisecond resolution 2018-12-07_211451_ArmmiteL4.zip ![]() I'll also include this functionality on the Armmite H7 next release. If you use flash then SPI2 can also be used for an LCDpanel No: see answer to last question See below; note PWM1C and PWM1D share the same pins as COM1 TX and RX so you can't use both at the same time. you can use PWM1A and PWM1B at the same time as COM1. 32-PIN { NULL, 0, PUNUSED , NULL, 0,}, // pin 1 VDD { NULL, 0, PUNUSED , NULL, 0}, // pin 2 OSC32_IN { NULL, 0, PUNUSED , NULL, 0}, // pin 3 OSC32_OUT { NULL, 0, PUNUSED , NULL, 0}, // pin 4 NRST { NULL, 0, PUNUSED , NULL, 0}, // pin 5 VDD { GPIOA, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_5}, // pin 6 COUNT/WAKEUP/IR { GPIOA, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_6}, // pin 7 SPI-CLK { NULL, 0, PUNUSED , NULL, 0}, // pin 8 Console-TX { GPIOA, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_8}, // pin 9 PWM2A { GPIOA, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_9}, // pin 10 DAC1 { GPIOA, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_10}, // pin 11 DAC2 { GPIOA, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_11}, // pin 12 SPI-IN { GPIOA, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_12}, // pin 13 SPI-OUT { GPIOB, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_15}, // pin 14 { GPIOB, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_16}, // pin 15 COUNT { NULL, 0, PUNUSED , NULL, 0}, // pin 16 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 17 VDD { GPIOA, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 18 PWM1A { GPIOA, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 19 COM1-TX/ PWM1C { GPIOA, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 20 COM1-RX/ PWM1D { GPIOA, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 21 PWM1B { GPIOA, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 22 USART1-DE/COUNT { NULL, 0, PUNUSED , NULL, 0}, // pin 23 SWDIO - not broken out on Nucleo { NULL, 0, PUNUSED , NULL, 0}, // pin 24 SWCLK - not broken out on Nucleo { NULL, 0, PUNUSED , NULL, 0}, // pin 25 Console-RX { GPIOB, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 26 Green-LED/SPI2-CLK { GPIOB, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 27 SPI2-IN { GPIOB, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 28 SPI2-OUT { GPIOB, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 29 I2C-SCL { GPIOB, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 30 I2C-SDA { NULL, 0, PUNUSED , NULL, 0}, // pin 31 { NULL, 0, PUNUSED , NULL, 0}, // pin 32 VSS 48-PIN { NULL, 0, PUNUSED , NULL, 0}, // pin 1 VBAT { GPIOC, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 2 { NULL, 0, PUNUSED , NULL, 0}, // pin 3 OSC32_IN { NULL, 0, PUNUSED , NULL, 0}, // pin 4 OSC32_OUT { GPIOH, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 5 { GPIOH, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 6 { NULL, 0, PUNUSED , NULL, 0}, // pin 7 NRST { NULL, 0, PUNUSED , NULL, 0}, // pin 8 VSSA { NULL, 0, PUNUSED , NULL, 0}, // pin 9 VDDA { GPIOA, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_5}, // pin 10 { GPIOA, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_6}, // pin 11 SPI-CLK { NULL, 0, PUNUSED , NULL, 0}, // pin 12 CONSOLE-TX { NULL, 0, PUNUSED , NULL, 0}, // pin 13 CONSOLE-RX { GPIOA, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_9}, // pin 14 DAC-1 { GPIOA, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_10}, // pin 15 DAC-2 { GPIOA, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_11}, // pin 16 SPI-IN { GPIOA, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_12}, // pin 17 SPI-OUT { GPIOB, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_15}, // pin 18 { GPIOB, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_16}, // pin 19 COUNT { GPIOB, GPIO_PIN_2, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 20 { GPIOB, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 21 COM2-TX { GPIOB, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 22 COM2-RX { NULL, 0, PUNUSED , NULL, 0}, // pin 23 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 24 VDD { GPIOB, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 25 { GPIOB, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 26 SPI3-CLK { GPIOB, GPIO_PIN_14, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 27 SPI3-IN { GPIOB, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 28 SPI3-OUT { GPIOA, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 29 PWM1A { GPIOA, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 30 COM1-TX / PWM1C { GPIOA, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 31 COM1-RX / PWM1D { GPIOA, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 32 PWM1B { GPIOA, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 33 COM1-DE { NULL, 0, PUNUSED , NULL, 0}, // pin 34 SWDIO { NULL, 0, PUNUSED , NULL, 0}, // pin 35 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 36 VDD // { NULL, 0, PUNUSED , NULL, 0}, // pin 37 SWCLK { GPIOA, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 38 { GPIOB, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 39 SPI2-CLK { GPIOB, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 40 SPI2-IN { GPIOB, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 41 SPI2-OUT { GPIOB, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 42 I2C-SCL { GPIOB, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 43 I2C-SDA { NULL, 0, PUNUSED , NULL, 0}, // pin 44 BOOT0 { GPIOB, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 45 PWM2A { GPIOB, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 46 { NULL, 0, PUNUSED , NULL, 0}, // pin 47 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 48 VDD 64-PIN { NULL, 0, PUNUSED , NULL, 0}, // pin 1 VBAT { GPIOC, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 2 { NULL, 0, PUNUSED , NULL, 0}, // pin 3 OSC32_IN { NULL, 0, PUNUSED , NULL, 0}, // pin 4 OSC32_OUT { GPIOH, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 5 { GPIOH, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 6 { NULL, 0, PUNUSED , NULL, 0}, // pin 7 NRST { GPIOC, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_1}, // pin 8 { GPIOC, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_2}, // pin 9 { GPIOC, GPIO_PIN_2, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_3}, // pin 10 { GPIOC, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_4}, // pin 11 { NULL, 0, PUNUSED , NULL, 0}, // pin 12 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 13 VDD { GPIOA, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_5}, // pin 14 { GPIOA, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_6}, // pin 15 SPI-CLK { NULL, 0, PUNUSED , NULL, 0}, // pin 16 CONSOLE-TX // { NULL, 0, PUNUSED , NULL, 0}, // pin 17 CONSOLE-RX { NULL, 0, PUNUSED , NULL, 0}, // pin 18 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 19 VDD { GPIOA, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_9}, // pin 20 DAC-1 { GPIOA, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_10}, // pin 21 DAC-2 { GPIOA, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_11}, // pin 22 SPI-IN { GPIOA, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_12}, // pin 23 SPI-OUT { GPIOC, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_13}, // pin 24 { GPIOC, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_14}, // pin 25 { GPIOB, GPIO_PIN_0, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_15}, // pin 26 { GPIOB, GPIO_PIN_1, DIGITAL_IN | DIGITAL_OUT | ANALOG_IN , ADC1, ADC_CHANNEL_16}, // pin 27 COUNT { NULL, 0, PUNUSED , NULL, 0}, // pin 28 { GPIOB, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 29 COM2-TX { GPIOB, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 30 COM2-RX { NULL, 0, PUNUSED , NULL, 0}, // pin 31 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 32 VDD // { GPIOB, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 33 { GPIOB, GPIO_PIN_13, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 34 SPI3-CLK { GPIOB, GPIO_PIN_14, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 35 SPI3-IN { GPIOB, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 36 SPI3-OUT { GPIOC, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 37 { GPIOC, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 38 { GPIOC, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 39 { GPIOC, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 40 { GPIOA, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 41 PWM1A { GPIOA, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 42 COM1-TX / PWM1C { GPIOA, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 43 COM1-RX / PWM1D { GPIOA, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 44 PWM1B { GPIOA, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 45 COM1-DE { NULL, 0, PUNUSED , NULL, 0}, // pin 46 SWDIO { NULL, 0, PUNUSED , NULL, 0}, // pin 47 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 48 VDD // { NULL, 0, PUNUSED , NULL, 0}, // pin 49 SWCLK { GPIOA, GPIO_PIN_15, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 50 { GPIOC, GPIO_PIN_10, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 51 { GPIOC, GPIO_PIN_11, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 52 { GPIOC, GPIO_PIN_12, DIGITAL_IN | DIGITAL_OUT, NULL, 0}, // pin 53 { GPIOD, GPIO_PIN_2, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 54 { GPIOB, GPIO_PIN_3, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 55 SPI2-CLK { GPIOB, GPIO_PIN_4, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 56 SPI2-IN { GPIOB, GPIO_PIN_5, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 57 SPI2-OUT { GPIOB, GPIO_PIN_6, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 58 I2C-SCL { GPIOB, GPIO_PIN_7, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 59 I2C-SDA { NULL, 0, PUNUSED , NULL, 0}, // pin 60 BOOT0 { GPIOB, GPIO_PIN_8, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 61 PWM2A { GPIOB, GPIO_PIN_9, DIGITAL_IN | DIGITAL_OUT , NULL, 0}, // pin 62 { NULL, 0, PUNUSED , NULL, 0}, // pin 63 VSS { NULL, 0, PUNUSED , NULL, 0}, // pin 64 VDD |
||||
viscomjim Guru ![]() Joined: 08/01/2014 Location: United StatesPosts: 925 |
This whole effort is really great! Matherp, have you tested the power use on the 48 and 64 pin, or should it be about the same as the 32 pinner? Nice time function there also!!! Edit... A quick question on com1... When using com1 for RS485, can the de pin be switched to either active high or active low preventing the use of an external inverter when using a transceiver chip? |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6283 |
I found an 'anomaly' with the millisecond time. produces this output: > RUN 10:42:06 08-12-2018 10:42:10.001 08-12-2018 10:42:19.1000 08-12-2018 10:42:29.999 08-12-2018 10:42:39.998 08-12-2018 10:42:49.997 08-12-2018 > RUN 12:16:01 08-12-2018 12:16:10.001 08-12-2018 12:16:19.1000 08-12-2018 12:16:29.1000 08-12-2018 12:16:39.999 08-12-2018 12:16:49.997 08-12-2018 12:16:59.996 08-12-2018 The problem is when the time has zero milliseconds. 19.1000 rather than 20.000 Is it working at a higher resolution behind the scenes and 1000mS is really 999.9? Jim I did another run and this time one of the outputs was correct > RUN 13:54:05 08-12-2018 13:54:10.001 08-12-2018 13:54:20.000 08-12-2018 13:54:29.1000 08-12-2018 13:54:39.999 08-12-2018 VK7JH MMedit |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
Very interesting. The issue is that the time in seconds, minutes, hours is latched in the RTC so you always get consistency. The milliseconds are based on a free running register that counts down from 4095 to zero each second. So it seems the register can be at zero but the main "time" has not yet latched in the change of seconds. I'll have to put in some sort of software "frig" to correct this - not sure what though. I certainly don't want to have to write a complete calendar function to deal with seconds/minutes/hours/... rollover |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6283 |
A crude 'round down' IF milliseconds >= 1000 THEN milliseconds = 999 Jim VK7JH MMedit |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
No, too nasty Try this: 2018-12-08_195738_ArmmiteL4.zip Here is my test program CPU 8 Option milliseconds off a$=Time$ Do Loop Until a$<> Time$ Option milliseconds on Pause 990 Do Pause 999 Print Time$ Loop |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6283 |
Much better. Jim VK7JH MMedit |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6283 |
More problems I was going to ask if we can have negative EPOCHs because I was born before 1/1/1970. I have found that it doesn't like dates last century. > print epoch("08-04-1972 00:00:00") Error: Invalid date > print epoch("01-01-1970 00:00:00") Error: Invalid date > print epoch("01-01-2070 00:00:00") 3155760000 > Jim VK7JH MMedit |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
I just used Geoff's standard parsing for the "DATE$" command if(d < 1 || d > 31 || m < 1 || m > 12 || y < 2000 || y > 2999) error("Invalid date"); but that is easily fixed. 2018-12-09_205542_ArmmiteL4.zip The linux time routines that I use don't work before 1970 (it wasn't invented by then) - sorry NB I've also changed the format of the DAY$ function as per a change I've just made on the Pi-cromite ![]() |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
Jim Just for you, I've found some different time routines so EPOCH and DATETIME$ now work back to 1902 with epoch going negative before 1970. 2018-12-09_225751_ArmmiteL4.zip |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6283 |
Thanks Peter. The arguments about negative epoch are nearly as devisive as Brexit. It is about time C and it's derivatives went 64 bit by default. Jim VK7JH MMedit |
||||
Page 1 of 2 ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |