Znaleziono 12 wyników

autor: tuxcnc
14 gru 2022, 20:59
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

Zwykle nie ma potrzeby pisać programu w assemblerze, ale trzeba znać i assembler i budowę programowanego procesora żeby napisać porządny kod.
To nie musi być jakaś zaawansowana wiedza i znajomość, zwykle wystarczą podstawy, ale bez tego wychodzą cuda...
Ostatnio walczyłem z poprawianiem programu, w którym pan "programista" na 32-bitowym procesorze użył 16-bitowych zmiennych, które się przepełniały i program się sypał... Tak to jest kiedy ktoś pisze program na "czarną skrzynkę"...
autor: tuxcnc
15 lis 2022, 20:59
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

drzasiek90 pisze:
15 lis 2022, 20:44
Zaś trzeba wertować dokumentację, żeby odszukać co to jest 0x10.
Ja na prawdę nie mogę uwierzyć, z kim tutaj rozmawiam...
Wkleiłem kilka linijek wyciętych z programu, gówno wiecie co w tym programie jest, a mądrzycie się jeden przez drugiego...
A jest tam tak:

Kod: Zaznacz cały

 // (TIMx->CR1 & 0x10) is direction bit
Z czego następnym razem każecie mi się tłumaczyć?
KOD JEST DOBRY I NAPISANY ZGODNIE Z ZASADAMI !
<rejest/zmienna>&<maska> jest prawidłowym sposobem testowania bitów.
Jeśli nie potraficie zrozumieć, to zapamiętajcie.
Więcej na ten temat dyskutować nie będę.
EOT
autor: tuxcnc
15 lis 2022, 20:22
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

drzasiek90 pisze:
15 lis 2022, 19:51
Kod tego typu co przedstawił tux jest rzeczywiście beznadziejny, ponieważ nie ma żadnego usprawiedliwienia aby wpisywać do rejestru (czy zmiennej) w taki sposób a tym bardziej, aby sprawdzać flagę w taki sposób.
Od tego są definicje poszczególnych bitów, zawierające ich nazwy. Odszukanie potem w dokumentacji, co było ustawione jest o wiele prostsze. A kompilator i tak to zamieni na to samo.
Następny poczuł się w obowiązku zakomunikować, że niczego nie rozumie, ale pogadać sobie musi....
autor: tuxcnc
15 lis 2022, 19:27
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

grg12 pisze:
15 lis 2022, 18:38
1. Kod jest kompletnie nieprzenośny.
Jest nieprzenośny i taki ma być, bo odwołuje się do unikalnego sprzętu.
grg12 pisze:
15 lis 2022, 18:38
2. Nie zawiera komentarza
Zawiera. Złośliwie i z premedytacją go pominąłem.
grg12 pisze:
15 lis 2022, 18:38
3. Jest prawdopobne
Nie jest.

Ogólnie to ten kod miał być tylko przykładem, że nie tylko warto znać budowę procesora na który się pisze kod, ale nawet czasem jest to konieczne.
Tutaj (STM32) jest na przykład taka heca, że procesor jest 32-bitowy, ale licznik tylko 16-bitowy. Skąd ktoś traktujący procesor jako "czarną skrzynkę" ma wiedzieć jakiego typu zmiennych użyć?
Oczywiście ktoś piszący program na peceta nie musi wiedzieć co to jest tablica deskryptorów, ale jakieś ogólne pojęcie o budowie procesora mieć trzeba, choćby żeby wiedzieć dlaczego bardzo podobny kod wykonuje się dziesięć razy wolniej...
autor: tuxcnc
15 lis 2022, 16:03
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

upanie pisze:
15 lis 2022, 16:01
Śmieszny jesteś.
Idź sobie pobiegać.
EOT.
autor: tuxcnc
15 lis 2022, 15:54
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

upanie pisze:
15 lis 2022, 15:42
nie umiesz tego samego napisać prościej w jednej linii
Umiem (?:), tylko nie lubię, bo czytelność stawiam wyżej od zaoszczędzenia kilku znaków.
Natomiast Ty popisujesz się klasycznym buractwem, czyli jak się nie masz do czego przypieprzyć, to się czepiasz ortografii.
Tylko tutaj akurat kod jest napisany poprawnie, zgodnie ze standardem, a jak się Tobie nie podoba, to wyłącznie twój problem.
autor: tuxcnc
15 lis 2022, 15:25
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

upanie pisze:
15 lis 2022, 14:45
Napisz tak z kilkadziesiąt firmware-ów na mikrokontrolery, które są bogate w funkcjonalność (prawdziwą funkcjonalność a nie wysyłanie znaków po uarcie) a odechce Ci się poznawania ich od środka.
Takie bzdety o świadomości działania procesora, na który pisze się soft opowiadają ludzie, którzy bawią się a nie robią tego zawodowo.
Co się tak uparłeś udowodnić że gówno wiesz i niczego nie rozumiesz?
Masz tu fragment mojego kodu:

Kod: Zaznacz cały

if (TIM2->CR1 & 0x10)
  {
          timer2_ovf-=0xFFFF;
  }
  else
  {
          timer2_ovf+=0xFFFF;
  }
To jest procedura obsługi przerwania z licznika pracującego w trybie enkodera kwadraturowego procesora STM32F401.
Zapewne tego nie widzisz i nie rozumiesz, ale znajomość wewnętrznej budowy procesora znakomicie uprościła kod.
Nigdy się nie dogadamy, bo ja programować uczyłem się w assemblerze 8080 i mam alergię na "programistów", którzy bez struct i this nawet LED-em nie potrafią pomrugać...
autor: tuxcnc
15 lis 2022, 14:05
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

rc666 pisze:
15 lis 2022, 13:56
W czym sie teraz programuje?
Niektórzy w HTML...
I to oni mają zawsze najwięcej do powiedzenia....
autor: tuxcnc
15 lis 2022, 13:53
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

Cały ten debilny offtopic przypomina mi debilną wojnę o to, czy w szkołach uczyć Basica czy Logo...
Co do samego Rusta, to z ciekawości poszukałem tego blinka na AVR...

Kod: Zaznacz cały

#![no_std]
#![no_main]

use ruduino::Pin;
use ruduino::cores::current::{port};

#[no_mangle]
pub extern fn main() {
    port::B5::set_output();

    loop {
        port::B5::set_high();

        ruduino::delay::delay_ms(1000);

        port::B5::set_low();

        ruduino::delay::delay_ms(1000);
    }
}
Jak dla mnie, to kolejny język dla debili, dla których procesor to czarna skrzynka, do której nie wolno zaglądać, bo i tak się nie zrozumie...
Cóż, "programiści" którzy niczego nie rozumieją, ale pamiętają co trzeba napisać żeby zadziałało, to prawdziwa plaga. A potem żeby zagrać w kółko i krzyżyk trzeba zainstalować sto megabajtów bibliotek... Już przy Pythonie to było przerabiane, pewnie z Rustem będzie tak samo... No ale jak jest popyt, to musi być i podaż...
I to tyle na ten temat.
autor: tuxcnc
14 lis 2022, 20:39
Forum: Na luzie
Temat: Programowanie w C
Odpowiedzi: 54
Odsłony: 2335

Re: Programowanie w C

upanie pisze:
14 lis 2022, 19:50
Nie porównuj C czy Rust-a do pythona bo te dwa pierwsze to języki kompilowane a python jest interpretowany.
Zupełnie nie o to chodzi, tylko o standaryzację lub jej brak.

Wróć do „Programowanie w C”