Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 3.765 pregleda

Najnovija ↓

PIC18F 16bitna aritmetika u C-u 10.06.2009. u 10:18 · pre 211 meseci #1
Interesuje me kakva je mogucnost rada sa vecim brojevima od 8 bitnih, ako se programira u C-u? Tj. da li se aritmetika lako obavlja direktnim putem?
Ja sam do sada radio nesto malo programiranja u asembleru, ali kada je u pitanju rad sa 16bitnim ciframa oduzme mi mnogo vremena da se sporazumemo.
Re: PIC18F 16bitna aritmetika u C-u 10.06.2009. u 22:19 · pre 211 meseci #2

Pogledaj
http://ww1.microchip.com/downl...eDoc/C18_User_Guide_51288j.pdf
Chapter 2

Kako misliš da li je laka aritmetika direktnim putem? Kada pišeš aritmetičke izraze u programskom jeziku c uvek moraš da paziš kog tipa će biti rezultat i da li će doći do odsecanja pri njegovom smeštanju. Recimo kada sabiraš bajt sa bajtom onda moraš jedan od njih da eksplicitno kastuješ u veći tip kako ne bi došlo do odsecanja rezultata.
Re: PIC18F 16bitna aritmetika u C-u 11.06.2009. u 08:50 · pre 211 meseci #3
Hvala za link.
I mislio sam da nisam bio najjasniji.
Jasno mi je da moram da predvidim koliki broj mogu da dobijem i da prema tome rezervisem velicinu.
Konkretno me interesuje: zelim da pomnozim dva broja, od kojih je jedan velicine 8 bita, a drugi 16 bita, ili 16 x 16 bita. Ili da podelim broj sa necim drugim osim 2, 4, 8 i sl. Ovaj PIC koji sam ja ucio da programiram ima hardverski samo 8x8.
I onda sam ja isao po nekim sajtovima i preuzimao asemblerske rutine koje ne razumem, a koje se bave mnozenjem i deljenjem i koristio ih u svome programu. MEdjutim problem ovoga je upravo sto ne razumem ove rutine, i ne mogu da predvidim situacije kada one mozda nece dobro funkcionisati.
Takodje me interesuje da li mogu eksplicitno da se kucaju operacije tipa 317.4+2.78, ili 22.5x3.14 i sl.
PS Sad cu tek da pogledam onaj AN
Re: PIC18F 16bitna aritmetika u C-u 11.06.2009. u 09:04 · pre 211 meseci #4
Sada kad sam pogledao ovaj app note, cini mi se da je moguce to sto me je interesovalo, pogotovo kada sam video koliki moze biti unsigned long!
Re: PIC18F 16bitna aritmetika u C-u 11.06.2009. u 19:02 · pre 211 meseci #5
Citat:
maza1: Konkretno me interesuje: zelim da pomnozim dva broja, od kojih je jedan velicine 8 bita, a drugi 16 bita, ili 16 x 16 bita. Ili da podelim broj sa necim drugim osim 2, 4, 8 i sl. Ovaj PIC koji sam ja ucio da programiram ima hardverski samo 8x8.


Operacije za koje nema hardverske podrške bez problema se izvode softverski. Recimo 105 ciklusa treba za:

Code:

    int x = 113;
    int y = 3526;
    int r;
    
    r = y/x;
Re: PIC18F 16bitna aritmetika u C-u 12.06.2009. u 08:51 · pre 211 meseci #8
Barum, zahvaljujem na objasnjenju, upravo to mi je trebalo.
Pretpostavljam da brzina izracunavanja zavisi od kompajlera ,tj broj potrebnih ciklusa.

Citat:
korak: Dobar kompajler navedeni kod prevodi kao:

r = 31;

Korak, nije meni problem da pomnozim ili podelim 2 konstante, vec promenljive u toku procesa.
Re: PIC18F 16bitna aritmetika u C-u 12.06.2009. u 18:58 · pre 211 meseci #9
De bre ljudi sto ste toliko osetljivi, valjda je ocigledno sta sam time hteo.

Nema ljutnje, pozdrav.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme