Skocz do zawartości

zielePL

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Osiągnięcia użytkownika zielePL

Aktywny debiutant

Aktywny debiutant (2/19)

  • To już rok!
  • To już 5 lat!

Odznaki

0

Reputacja

  1. Trochę rozumiem, trochę nie. Napewno jak go skompiluje na PC toi sposób że po wpisaniu danych wyświetli mi w przeliczeniu na dwójkowy, trójkowy, ósemkowy, szesnastkowy a na 4-kowy nie. W arduino żeby np zadziałało to na Monitorze portu szeregowego muszę zmienić nieco kod np printf na println. Trochę nie wiem gdzie miałbym dodać np Serial.begin(9600); printf("1231 w systemie czwórkowym to %d w systemie dziesietnym\n", convertFrom("1231", 4)); rozumiem, że teoretycznie dodanie takiej formuły powinno dodać przeliczenie z 4-kowego na dziesiętny jeżeli jestem w błedzie proszę mnie z niego wyprowadzić
  2. Witam, pracuję nad pewnym projektem a jako że jestem początkujący napotkałem na problem, potrzebuję aby program w arduino w pewnym momencie odebrane dane liczbowe przekrztałcał z systemu czwórkowego na dziesiętny. I teraz pytanie 😃 Pomożecie ? znalazłem coś takiego: // // Konwersja z i na system dziesietny // // www.algorytm.org // (c)2006 by Tomasz Lubinski // #include "stdio.h" #include "stdlib.h" #define MAX_BASE 36 char pattern[MAX_BASE + 1] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //returns converted n or NULL if an error occurs char *convertTo(char *dst, unsigned int n, int base) { int i = 0; int j; char tmp[100]; //base is too big or too small if ((base > MAX_BASE) || (base < 2)) return NULL; //n is equal to 0, do not process, return "0" if (n == 0) { dst[0] = '0'; dst[1] = 0; } //process until n > 0 while (n>0) { tmp[i] = pattern[n % base]; n /= base; i++; } //revert tmp to result for (j=0; j<i; j++) { dst[j] = tmp[i-j-1]; } dst[i] = 0; return dst; } //return value of x or -1 if an error occurs int valueOf(char x, int base) { int i; for (i=0; i<base; i++) { if (x == pattern[i]) { return i; } } return -1; } //returns converted n or 0 if an error occurs unsigned int convertFrom(char *n, int base) { int i, x; int p = 1; int result = 0; //base is too big or too small if ((base > MAX_BASE) || (base < 2)) return 0; strupr(n); for (i=strlen(n)-1; i>=0; i--) { x = valueOf(n[i], base); if (x < 0) { return 0; } result += (x * p); p *= base; } return result; } int main(void) { char result[100]; convertTo(result, 3568, 2); printf("3568 w systemie dwojkowym = %s\n", result); convertTo(result, 3568, 3); printf("3568 w systemie trojkowym = %s\n", result); convertTo(result, 3568, 8); printf("3568 w systemie osemkowym = %s\n", result); convertTo(result, 3568, 16); printf("3568 w systemie szesnastkowym = %s\n", result); convertTo(result, 3568, 20); printf("3568 w systemie dwudziestkowym = %s\n", result); printf("100010010 w systemie dwojkowym to %d w systemie dziesietnym\n", convertFrom("100010010", 2)); printf("7542 w systemie ósemkowym to %d w systemie dziesietnym\n", convertFrom("7542", 8)); printf("E854 w systemie szesnastkowym to %d w systemie dziesietnym\n", convertFrom("E854", 16)); return 0; } Źródło tylko nie mogę sobie tego dostosować do arduino
  3. Dziękuje autorowi za tak fajny i pomocny kurs (już drugi). Bardzo pomógł mi poznać świat elektroniki i w miły sposób pomógł przyswoić podstawy. Z niecierpliwością oczekuję kolejnych artykułów. Mam tylko jedno pytanie. Ponieważ mam problem z rozróżnianiem gniazd i wtyków używanych w elektronice może dało by się zrobić jakiś artykuł co z czym się je w temacie gniazd i wtyków. Jeszcze raz dzięki za świetne lekcje podstaw 🙂
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.