Rev 23 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 23 | Rev 24 | ||
---|---|---|---|
Line 56... | Line 56... | ||
56 | 56 | ||
57 | /* USER CODE BEGIN PV */ |
57 | /* USER CODE BEGIN PV */ |
58 | /* Private variables ---------------------------------------------------------*/ |
58 | /* Private variables ---------------------------------------------------------*/ |
59 | #define MAXRDG 32 |
59 | #define MAXRDG 32 |
60 | 60 | ||
- | 61 | /* timeout when the ignition is switched off */ |
|
- | 62 | #define IGNITION_OFF_TIMEOUT 30000UL |
|
- | 63 | ||
61 | int OldObservation[2] = |
64 | int OldObservation[2] = |
62 | { -1, -1 }; // illegal initial value |
65 | { -1, -1 }; // illegal initial value |
63 | int OldObservationIndex[2] = |
66 | int OldObservationIndex[2] = |
64 | { -1, -1 }; // if more than one sensor this will be printed |
67 | { -1, -1 }; // if more than one sensor this will be printed |
65 | int16_t dial0[2] = |
68 | int16_t dial0[2] = |
Line 81... | Line 84... | ||
81 | char Bytes[MAXRDG * sizeof(PLX_SensorInfo)]; |
84 | char Bytes[MAXRDG * sizeof(PLX_SensorInfo)]; |
82 | } Data; |
85 | } Data; |
83 | int Max[MAXRDG]; |
86 | int Max[MAXRDG]; |
84 | int Min[MAXRDG]; |
87 | int Min[MAXRDG]; |
85 | int PLXItems; |
88 | int PLXItems; |
- | 89 | ||
- | 90 | uint32_t Latch_Timer = IGNITION_OFF_TIMEOUT; |
|
- | 91 | ||
- | 92 | ||
86 | /* USER CODE END PV */ |
93 | /* USER CODE END PV */ |
87 | 94 | ||
88 | /* Private function prototypes -----------------------------------------------*/ |
95 | /* Private function prototypes -----------------------------------------------*/ |
89 | void SystemClock_Config(void); |
96 | void SystemClock_Config(void); |
90 | void Error_Handler(void); |
97 | void Error_Handler(void); |
Line 189... | Line 196... | ||
189 | buff[i++] = ObservationIndex + '1'; |
196 | buff[i++] = ObservationIndex + '1'; |
190 | } |
197 | } |
191 | 198 | ||
192 | print_large_string(buff, 64-i*4, 48, i); // this prints spaces for \0 at end of string |
199 | print_large_string(buff, 64-i*4, 48, i); // this prints spaces for \0 at end of string |
193 | 200 | ||
- | 201 | // print suffix if present. |
|
- | 202 | font_gotoxy(15,4); |
|
- | 203 | int i=0; |
|
- | 204 | while(DisplayInfo[Observation].suffix[i]) |
|
- | 205 | { |
|
- | 206 | font_putchar(DisplayInfo[Observation].suffix[i++]); |
|
- | 207 | } |
|
- | 208 | ||
194 | OldObservation[dial] = Observation; |
209 | OldObservation[dial] = Observation; |
195 | OldObservationIndex[dial] = ObservationIndex; |
210 | OldObservationIndex[dial] = ObservationIndex; |
196 | // |
211 | // |
197 | display(); |
212 | display(); |
198 | 213 | ||
Line 388... | Line 403... | ||
388 | 403 | ||
389 | ssd1306_begin(1, 0); |
404 | ssd1306_begin(1, 0); |
390 | dial_origin(64, 60); |
405 | dial_origin(64, 60); |
391 | dial_size(60); |
406 | dial_size(60); |
392 | 407 | ||
393 | - | ||
- | 408 | /* reset the display timeout, latch on power from accessories */ |
|
394 | // sort out the switch positions |
409 | Latch_Timer = IGNITION_OFF_TIMEOUT; |
395 | - | ||
396 | - | ||
397 | - | ||
- | 410 | HAL_GPIO_WritePin(POWER_LATCH_GPIO_Port,POWER_LATCH_Pin,GPIO_PIN_RESET); |
|
398 | 411 | ||
399 | for (disp = 0; disp < 2; disp++) |
412 | for (disp = 0; disp < 2; disp++) |
400 | { |
413 | { |
401 | select_display(disp); |
414 | select_display(disp); |
402 | clearDisplay(); |
415 | clearDisplay(); |
Line 419... | Line 432... | ||
419 | 432 | ||
420 | /* Infinite loop */ |
433 | /* Infinite loop */ |
421 | /* USER CODE BEGIN WHILE */ |
434 | /* USER CODE BEGIN WHILE */ |
422 | uint32_t Ticks = HAL_GetTick() + 100; |
435 | uint32_t Ticks = HAL_GetTick() + 100; |
423 | 436 | ||
- | 437 | /* while ignition is on, keep resetting power latch timer */ |
|
- | 438 | if(HAL_GPIO_ReadPin(IGNITION_GPIO_Port,IGNITION_Pin) == GPIO_PIN_RESET) |
|
- | 439 | { |
|
- | 440 | Latch_Timer = HAL_GetTick() + IGNITION_OFF_TIMEOUT; |
|
- | 441 | } |
|
- | 442 | else |
|
- | 443 | { |
|
- | 444 | /* if the ignition has been off for a while, then turn off power */ |
|
- | 445 | if(HAL_GetTick() > Latch_Timer ) |
|
- | 446 | { |
|
- | 447 | HAL_GPIO_WritePin(POWER_LATCH_GPIO_Port,POWER_LATCH_Pin,GPIO_PIN_RESET); |
|
- | 448 | } |
|
- | 449 | } |
|
- | 450 | ||
424 | uint32_t timeout = 0; // |
451 | uint32_t timeout = 0; // |
425 | // PLX decoder protocol |
452 | // PLX decoder protocols |
426 | char PLXPacket = 0; |
453 | char PLXPacket = 0; |
427 | for (i = 0; i < MAXRDG; i++) |
454 | for (i = 0; i < MAXRDG; i++) |
428 | { |
455 | { |
429 | Max[i] = 0; |
456 | Max[i] = 0; |
430 | Min[i] = 0xFFF; // 12 bit max value |
457 | Min[i] = 0xFFF; // 12 bit max value |
Line 432... | Line 459... | ||
432 | 459 | ||
433 | int PLXPtr = 0; |
460 | int PLXPtr = 0; |
434 | 461 | ||
435 | while (1) |
462 | while (1) |
436 | { |
463 | { |
437 | // poll switches |
464 | // poll switche |
438 | HandleSwitches(); |
465 | HandleSwitches(); |
439 | // Handle the bluetooth pairing function by pressing both buttons. |
466 | // Handle the bluetooth pairing function by pressing both buttons. |
440 | if((push_pos[0] == 1) && (push_pos[1] == 1)) |
467 | if((push_pos[0] == 1) && (push_pos[1] == 1)) |
441 | { |
468 | { |
442 | HAL_GPIO_WritePin(BT_BUTTON_GPIO_Port, BT_BUTTON_Pin, GPIO_PIN_SET); |
469 | HAL_GPIO_WritePin(BT_BUTTON_GPIO_Port, BT_BUTTON_Pin, GPIO_PIN_SET); |
Line 668... | Line 695... | ||
668 | 695 | ||
669 | /*Configure GPIO pin Output Level */ |
696 | /*Configure GPIO pin Output Level */ |
670 | HAL_GPIO_WritePin(GPIOA, SPI1CD_Pin|BT_BUTTON_Pin, GPIO_PIN_RESET); |
697 | HAL_GPIO_WritePin(GPIOA, SPI1CD_Pin|BT_BUTTON_Pin, GPIO_PIN_RESET); |
671 | 698 | ||
672 | /*Configure GPIO pin Output Level */ |
699 | /*Configure GPIO pin Output Level */ |
673 | HAL_GPIO_WritePin(GPIOC, SPI_RESET_Pin|USART3_INVERT_Pin|USB_PWR_Pin, GPIO_PIN_RESET); |
700 | HAL_GPIO_WritePin(GPIOC, SPI_RESET_Pin|POWER_LATCH_Pin|USB_PWR_Pin, GPIO_PIN_RESET); |
674 | 701 | ||
675 | /*Configure GPIO pin Output Level */ |
702 | /*Configure GPIO pin Output Level */ |
676 | HAL_GPIO_WritePin(SPI_NSS2_GPIO_Port, SPI_NSS2_Pin, GPIO_PIN_SET); |
703 | HAL_GPIO_WritePin(SPI_NSS2_GPIO_Port, SPI_NSS2_Pin, GPIO_PIN_SET); |
677 | 704 | ||
678 | /*Configure GPIO pins : SPI_NSS1_Pin SPI1CD_Pin BT_BUTTON_Pin */ |
705 | /*Configure GPIO pins : SPI_NSS1_Pin SPI1CD_Pin BT_BUTTON_Pin */ |
679 | GPIO_InitStruct.Pin = SPI_NSS1_Pin|SPI1CD_Pin|BT_BUTTON_Pin; |
706 | GPIO_InitStruct.Pin = SPI_NSS1_Pin|SPI1CD_Pin|BT_BUTTON_Pin; |
680 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
707 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
681 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
708 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
682 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
709 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
683 | 710 | ||
684 | /*Configure GPIO pins : SPI_RESET_Pin SPI_NSS2_Pin USART3_INVERT_Pin USB_PWR_Pin */ |
711 | /*Configure GPIO pins : SPI_RESET_Pin SPI_NSS2_Pin POWER_LATCH_Pin USB_PWR_Pin */ |
685 | GPIO_InitStruct.Pin = SPI_RESET_Pin|SPI_NSS2_Pin|USART3_INVERT_Pin|USB_PWR_Pin; |
712 | GPIO_InitStruct.Pin = SPI_RESET_Pin|SPI_NSS2_Pin|POWER_LATCH_Pin|USB_PWR_Pin; |
686 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
713 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
687 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
714 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
688 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
715 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
689 | 716 | ||
690 | /*Configure GPIO pins : SW1_PUSH_Pin SW1_I_Pin SW1_Q_Pin SW2_PUSH_Pin */ |
717 | /*Configure GPIO pins : SW1_PUSH_Pin SW1_I_Pin SW1_Q_Pin SW2_PUSH_Pin */ |
Line 697... | Line 724... | ||
697 | GPIO_InitStruct.Pin = SW2_I_Pin|SW2_Q_Pin; |
724 | GPIO_InitStruct.Pin = SW2_I_Pin|SW2_Q_Pin; |
698 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
725 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
699 | GPIO_InitStruct.Pull = GPIO_PULLUP; |
726 | GPIO_InitStruct.Pull = GPIO_PULLUP; |
700 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
727 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
701 | 728 | ||
- | 729 | /*Configure GPIO pin : IGNITION_Pin */ |
|
- | 730 | GPIO_InitStruct.Pin = IGNITION_Pin; |
|
- | 731 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
|
- | 732 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
- | 733 | HAL_GPIO_Init(IGNITION_GPIO_Port, &GPIO_InitStruct); |
|
- | 734 | ||
702 | } |
735 | } |
703 | 736 | ||
704 | /* USER CODE BEGIN 4 */ |
737 | /* USER CODE BEGIN 4 */ |
705 | 738 | ||
706 | /* USER CODE END 4 */ |
739 | /* USER CODE END 4 */ |