pozz!
Trebao bi pomoć oko kodiranja za cirkularni buffer. Ideja je čitati stanje senzora i raditi prosjek, na način da n-ti novi podatak zamijenjuje n-ti najstariji podatak.
Napisao sam ovaj dio koda i to radi kako treba u bascom 8051 simulatoru:
** buffer**
Dim niz(3) As Byte
Dim P As Byte
Dim suma As Byte
Dim X As Byte
Dim brojac As Byte
Dim prosjek As Single
brojac = 0
P = 0
suma = 0
Do
suma = suma - niz(p)
Input "Input number:" , X
niz(p) = X
suma = suma + X
brojac= brojac + 1
P = P + 1
P = P Mod 3
If brojac = 3 Then
prosjek = suma / 3
brojac = 2
End If
Loop
Ako npr. ucitam 5 brojeva u niz (x1=1, x2=3; x3=5; x4=7; x5=8) imam tri prosjeka:
prosjek_1= x1 + x2 + x3 /3
prosjek_2= x2 + x3 + x4 /3
prosjek_3= x3 + x4 + x5 /3
_________
Medutim, isti ovaj kod mi ne radi kad ga učitam u mikrokontroler, tj. samo prvi prosjek bude dobar na displayima, poslije dobivam neke čudne vrijednosti(povećava se duplo nakon svakog čitanja senzora ili X u ovom primjeru).
Program za mcu radi dobro ukoliko ne radim s ovim bufferom, tj. ucitavam konstantno vrijednosti i saljem ih na display.
Ovako sam to zamislio:
do
- ucitaj vrijednost x s senzora
- onda ovaj dio koda sa cirkularnim buferom
- napravi kalkulaciju vrijednosti za prikaz na displayima
- prikazi na displayeve
loop
neka ideja?
cirkularni buffer-pomoć?
Moderators: pedja089, stojke369, [eDo], trax