Skocz do zawartości

Mellon

Użytkownicy
  • Zawartość

    157
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    3

Mellon wygrał w ostatnim dniu 22 października 2017

Mellon ma najbardziej lubianą zawartość!

Reputacja

7 Neutralna

O Mellon

  • Ranga
    5/10
  • Urodziny 30.12.1976

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Gdańsk
  • Języki programowania
    C#,Matlab,C
  • Zainteresowania
    elektroenergetyka
  • Zawód
    automatyk

Ostatnio na profilu byli

648 wyświetleń profilu
  1. Myślę, że można spróbować wykorzystać Wine 5.0 do uruchomienia aplikacji windowsowej.
  2. Jeżeli plik exe został utworzony w dot.NET (konsola, Windows Forms) np. C# to za pomocą projektu mono można uruchomić. Inna opcja instalacja Windows 10 IoT Core i utworzenie aplikacji Uniwersalnej Platformy Windows. Testowałem - działa. Oczywiście po opublikowaniu do ARM64/ARM32. Visual Studio umożliwia programowanie na laptopie i publikowanie do zdalnej maszyny.
  3. Mam pytanko. Jak utworzyć nową bibliotekę na Platform IO? Gdzie należy umieścić folder z plikami .h i .cpp
  4. Podczas próby kompilacji przykładu UART_TwoBoards_ComPolling wystąpił błąd linkowania. Katalogi przykładów mają porozrzucane pliki. Utworzyłem nowy projekt dla Nucleo. Uzupełniłem katalogi inc/src plikami z przykładu (po dołączeniu plików stm32h7xx_nucleo_144.h/.c) otrzymuję Building target: TestUART.elf Invoking: MCU GCC Linker arm-none-eabi-gcc -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16 -T"C:/STM32_H7/TestUART/LinkerScript.ld" -Wl,-Map=output.map -Wl,--gc-sections -o "TestUART.elf" @"objects.list" -lm c:/ac6/systemworkbench/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.16.0.201807130628/tools/compiler/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: .ARM has both ordered and unordered sections c:/ac6/systemworkbench/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.16.0.201807130628/tools/compiler/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: final link failed: Bad value collect2.exe: error: ld returned 1 exit status makefile:35: recipe for target 'TestUART.elf' failed make: *** [TestUART.elf] Error 1 .ARM has both ordered and unordered sections Z czego to wynika? Co to oznacza?
  5. Niestety trochę różnic jest. A diabeł tkwi w szczegółach. Niby HAL (abstrakcyjna warstwa niezależna od sprzętu), ale sporo się różni dla F1, F4 i H7. Co ciekawe nie wynika to z różnic sprzętowych.
  6. Wtedy prościej utworzyć bibliotekę statyczną z poprawioną wartością tej zmiennej, ustawieniami zegarów (HSE), itp. i wydzielić do katalogu z którego wszystkie projekty dot. tej rodziny STM32 będą korzystać. Wbudowany generator RC w pełnym zakresie temperatur ma wahania częstotliwości rzędu kilku procent. Natomiast rezonatory kwarcowe/ceramiczne mają wahania częstotliwości rzędu 15-30 ppm ((parts per million). Koszt takiego to ok 2 zł. A taki rezonator mamy w Nucleo jeśli nie odłamiemy programatora. W przypadku wykorzystania do komunikacji, synchronizacji z innymi urządzeniami wymagany jest stabilny sygnał zegarowy. Dlaczego by nie skorzystać z niego.
  7. Co prawda podczas debugowania po wywołaniu HAL_Init zmienna SystemCoreClock miała wartość 8MHz, pomimo że nie ustawiłem jej na prawidłową wartość. Ustawia ją SystemCoreClockUpdate(). Lecz nie wiem w którym momencie jest wywoływana tj. czy przed pierwszym użyciem tej zmiennej.
  8. Dzięki Elvis Właśnie tego brakowało w kursie o przerwaniach. Wystarczy pierwsza z nich. Drga służy do wybrania grupy od 1 do 4 (priorytetów i podpriorytetów) HAL_NVIC_SetPriority(EXTI15_10_IRQn,0,0); HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
  9. Mam pytanie dot. przerwań. W SPL wyglądało to tak: wybranie grupy priorytetów (jest w HAL_Init()) ustawienie priorytetu i sub-priorytetu, kanału i jego włączenie NVIC_InitStruct :NVIC_Init Skonfigurowanie GPIO :GPIO_Init Ustawienie źródła przerwania GPIO_EXTILineConfig Skonfigurowanie kontrolera zewnętrznych przerwań/zdarzeń (sygnał opadający/rosnący oba): EXTI_Init() Utworzenie funkcji przerwania. Jak ustawić priorytety przerwania w HAL?
  10. Korzystając z rezonatora w programatorze: HAL_Init(); RCC_OscInitTypeDef osc; osc.OscillatorType = RCC_OSCILLATORTYPE_HSE; osc.HSEState = RCC_HSE_BYPASS; osc.HSIState = RCC_HSI_OFF; osc.PLL.PLLState = RCC_PLLSOURCE_HSE; osc.PLL.PLLMUL = RCC_PLL_MUL9; HAL_RCC_OscConfig(&osc); RCC_ClkInitTypeDef clk; clk.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; clk.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; clk.AHBCLKDivider = RCC_SYSCLK_DIV1; clk.APB1CLKDivider = RCC_HCLK_DIV2; clk.APB2CLKDivider = RCC_HCLK_DIV1; HAL_RCC_ClockConfig(&clk, FLASH_LATENCY_2); SystemCoreClockUpdate(); Tylko nie wiem jak sprawdzić częstotliwość rdzenia z jaką on rzeczywiście pracuje?
  11. #include "stm32f1xx.h" int main(void) { SystemCoreClock = 8000000; // taktowanie 8Mhz HAL_Init(); Przyznasz, że to dziwna konstrukcja.
  12. Ja bym proponował napisać odcinek kursu. To wszyscy by zrozumieli co i jak. Bez tego to czarna magia będzie dla innych czemu z 72MHz zmieniamy na 8MHz. Jak coś napiszę mogę podesłać.
×
×
  • Utwórz nowe...