Skocz do zawartości

Pomocna odpowiedź

A no chyba że tak - no ale nikt nie broni stosować nie-defaultowych magnesów przecież, więc jest to jakieś rozwiązanie.

Dla zwykłego zjadacza chleba nie mieszkającego w Japonii pewne rzeczy są nieosiągalne. Mi udało się znaleźć niestandardowe magnesy ale za cenę 10zł/szt. Nie jest więc lekko, a moje też są neodymowe. Tu wyraźnie widać, że są albo żelazowe, albo te giętkie (takie jak na lodówkę), a one są dużo słabsze niż neodymowe.

Właśnie tak się zastanawiam, czy te lodówkowe magnesy by nie zadziałały - to są paseczki N-S-N-S..., wszystkie są równoległe, więc mogłoby to zadziałać.

Po odsunięciu od siebie silników i przesunięciu krawędzi bliżej złącz enkoderów wymiary wynoszą 95,3 x 90 mm (szer. x dług.). Wyświetlacz będzie podłączony przez złącze micro-match, ponieważ nie będzie na poziomie płytki, żeby przylutować bezpośrednio złącza, tylko razem z akumulatorem będzie opierał się o silniki.

Skoro nie ma więcej uwag do płytek to będę je wysyłał do Satlandu. Mam jeszcze tylko kilka pytań:

1) W worklogu robota Snab Carpe Diem napisał, że należy zapłacić 3 dni przed zakończeniem. Czy tak jest zawsze?

2) Czy można za jednym razem wysłać projekty kilku płytek (głównej i enkoderów) czy trzeba wysyłać 2 razy osobno?

1. Jakoś 3 dni przed zakończeniem dostaniesz maila z informacjami o zapłacie.

2. Oczywiście możesz wykonać 2 płytki w 1 zamówieniu.

  • 1 miesiąc później...

W ciągu ostatnich dwóch tygodni poprzychodziły do mnie części oraz płytka. Wczoraj skończyłem lutowanie i zacząłem powoli programować robota.

Obsługę poszczególnych pinów oraz ADC mam, ale niestety nie chce mi się skonfigurować zegar 🙁. W internecie znalazłem taką funkcję:

void RCC_Configuration(void) {
	/* Konfiguracja zegara -------------------------------------------------------*/
	/* Wyzerowanie poprzednich ustawień RCC*/
	RCC_DeInit();

	ErrorStatus HSEStartUpStatus;

	/* Włączenie HSE */
	RCC_HSEConfig(RCC_HSE_ON);

	/* Czekaj, aż HSE sie uruchomi lub zostanie przekroczony dozwolony czas */
	HSEStartUpStatus = RCC_WaitForHSEStartUp();

	if (HSEStartUpStatus == SUCCESS)
	{
		/* Włączenie opóźnień dla FLASH */
		FLASH_SetLatency(FLASH_Latency_2);
		FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

		/* HCLK = SYSCLK */
		RCC_HCLKConfig(RCC_SYSCLK_Div1);

		/* PCLK2 = HCLK */
		RCC_PCLK2Config(RCC_HCLK_Div1);

		/* PCLK1 = HCLK/2 */
		RCC_PCLK1Config(RCC_HCLK_Div2);

		/* PLLCLK = 8MHz * 9 = 72 MHz
		 * w linii Conectivity Line nie ma mozliwosci skorzystania bezposrednio z HSE jako zrodla dla petli PLL
		 * */
		RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_9);

		/* Włączenie PLL */
		RCC_PLLCmd(ENABLE);

		/* Oczekiwanie na gotowość PLL */
		while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {
		}

		/* Wybór PLL na zegar systemowy */
		RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

		/* Oczekiwanie na wybór zegara systemowego */
		while (RCC_GetSYSCLKSource() != 0x08) {
		}
	}
}

Jednak debugger pokazuje, że HSEStartUpStatus = ERROR. Co może by przyczyną? Rezonator jest podpięty do uC, kondensatory również.

Tak naprawdę wystarczy zamiast całej Twojej funkcji tylko taka:

void RCC_Config(void) {
SystemInit(); //@72Mhz
}

To ustawi najwyższą możliwość z jaką może pracować procesor. Sprawdź czy wtedy zadziała.

  • Pomogłeś! 1

Jak sprawdzałem na for(i=0;i<1000000;i++) to czas działania z SystemInit() był taki sam, jak bez tego (ok. 3s). Czy to może by wina podłączenia?

EDIT

Sprawdziłem jeszcze raz, czy nie ma żadnego zwarcia i jednak jedna nóżka rezonatora była zwarta do masy. Po usunięciu zwarcia wszystko działa ok.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...