/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
PIC Programmering i Basic
Fra : Biker Mike


Dato : 13-01-02 13:30

Hej med jer, jeg er helt ny i Basic og PIC programmering, og har kastet mig
ud i et projekt hvor jeg skal bygge en Julemand i fuld størrelse, ideen er
at den skal stå / sidde i et forretnings vindue og styres af en PIC
processor, afhængig af hvor meget trafik der er på fortovet udenfor
forretningen skal han foretage sig forskellige ting, nu er jeg kommet dertil
at jeg har købt PIC Basic og fået planlagt hvordan programmet til styringen
skal bygges op, jeg har også fået styr på portene osv, Men jeg er kørt fast
i en "lille" rutine, helt nøjagtigt drejer det sig om at jeg skal tælle
antal hændelser / pulser på en port (indgang) over en given tids periode på
ex 10 sec, og alt efter om der er under 4 pulser, mellem 4-8 pulser, eller
over 8 pulser skal der springes vidre til henholdsvis Loop1 - 2 - eller 3 ,
jeg forestiller mig noget i retning af en sammentælling, aflæsning og
nulstilling hver 10, ende sec, med stillingtagen og spring til relevante
loop, Men hvordan ?? Er der en her i gruppen som kan forklare mig hvordan
det gøres, helst i PIC Basic da det er det program som jeg arbejder i, men
andre Basic program eksempler kan sikkert bruges.

Hilsen Michael



 
 
Christian R. Larsen (13-01-2002)
Kommentar
Fra : Christian R. Larsen


Dato : 13-01-02 19:45

"Biker Mike" <xxxxdko12134@vip.cybercity.dk> wrote in message
news:a1rukr$18ec$1@news.cybercity.dk...
> jeg forestiller mig noget i retning af en sammentælling, aflæsning og
> nulstilling hver 10, ende sec, med stillingtagen og spring til relevante
> loop, Men hvordan ?? Er der en her i gruppen som kan forklare mig hvordan
> det gøres, helst i PIC Basic da det er det program som jeg arbejder i, men
> andre Basic program eksempler kan sikkert bruges.

Nu vil jeg ikke lige sidde og skrive programmet til dig, da du alligevel
skal til at oversætte til PIC Basic, som jeg ikke kender, men:

Du skal lave en database, og det kan du evt. gøre med et array. De fleste
basic-sprog har array-funktioner, der typisk er knyttet til DIM-kommandoen.
Sidst jeg programmerede almindelig basic kunne kommandoen eks. hedde:

DIM PulsDatabase (100)

Ideen er så, at du gemmer tidspunktet for hver puls, og hver gang en ny puls
kommer til, erstatter den så en af de 100 gamle.

Dit program skal så konstant gennemløbe de 100 poster i arrayet, for at se,
hvor mange af dem, der ligger inden for de sidste 10 sekunder. Det laver du
med en simpel tællefunktion:

Tæller=0
For x=1 to 100
IF PulsDatabase(x) > TidspunktNu - 10 then Tæller=Tæller+1
Next x

If Tæller>4 Then ...
(og så fremdeles)

Men ellers er princippet





Biker Mike (14-01-2002)
Kommentar
Fra : Biker Mike


Dato : 14-01-02 07:28

Hmmm, joe, Men der er lige det der med at PIC processorer er lidt speicelle
med hensyn til kommandoer, man opretter ikke bare lige en database i dem,
svaret som jeg havde håbet på var nok noget i retning af, "kommando"
(placerer bits i register) pause 10000 (pause 10 sec) "kommando" (aflæser
samlede antal bit og nulstiller) eller noget i den retning, Men tak for
svaret alligevel.

Hilsen Michael


"Christian R. Larsen" <crlarsen@hotmail.com> skrev i en meddelelse
news:cBk08.14073$aS.1920224@news010.worldonline.dk...
> "Biker Mike" <xxxxdko12134@vip.cybercity.dk> wrote in message
> news:a1rukr$18ec$1@news.cybercity.dk...
> > jeg forestiller mig noget i retning af en sammentælling, aflæsning og
> > nulstilling hver 10, ende sec, med stillingtagen og spring til relevante
> > loop, Men hvordan ?? Er der en her i gruppen som kan forklare mig
hvordan
> > det gøres, helst i PIC Basic da det er det program som jeg arbejder i,
men
> > andre Basic program eksempler kan sikkert bruges.
>
> Nu vil jeg ikke lige sidde og skrive programmet til dig, da du alligevel
> skal til at oversætte til PIC Basic, som jeg ikke kender, men:
>
> Du skal lave en database, og det kan du evt. gøre med et array. De fleste
> basic-sprog har array-funktioner, der typisk er knyttet til
DIM-kommandoen.
> Sidst jeg programmerede almindelig basic kunne kommandoen eks. hedde:
>
> DIM PulsDatabase (100)
>
> Ideen er så, at du gemmer tidspunktet for hver puls, og hver gang en ny
puls
> kommer til, erstatter den så en af de 100 gamle.
>
> Dit program skal så konstant gennemløbe de 100 poster i arrayet, for at
se,
> hvor mange af dem, der ligger inden for de sidste 10 sekunder. Det laver
du
> med en simpel tællefunktion:
>
> Tæller=0
> For x=1 to 100
> IF PulsDatabase(x) > TidspunktNu - 10 then Tæller=Tæller+1
> Next x
>
> If Tæller>4 Then ...
> (og så fremdeles)
>
> Men ellers er princippet
>
>
>
>



Christian R. Larsen (15-01-2002)
Kommentar
Fra : Christian R. Larsen


Dato : 15-01-02 13:04

Biker Mike <dko12134@vip.cybercity.dk> skrev i artiklen
<a1utbj$1tcc$1@news.cybercity.dk>...
> Hmmm, joe, Men der er lige det der med at PIC processorer er lidt
speicelle
> med hensyn til kommandoer, man opretter ikke bare lige en database i
dem,
> svaret som jeg havde håbet på var nok noget i retning af, "kommando"
> (placerer bits i register) pause 10000 (pause 10 sec) "kommando"
(aflæser
> samlede antal bit og nulstiller) eller noget i den retning, Men tak
for
> svaret alligevel.

Jeg kan ikke forestille mig, at du ikke kan oprette en simpel database.
Selv i maskinkode kan man oprette en database. Det vil jo faktisk bare
sige, at man allokkerer et stykke hukommelse til nogle bestemte data. Det
må du da kunne, selv med en PIC processor?


Biker Mike (15-01-2002)
Kommentar
Fra : Biker Mike


Dato : 15-01-02 07:13

Mjoe, men jeg mener at det gøres ved at placere bit i registre, og derefter
lave beregninger på dem, Men som sagt er jeg helt ny begynder i både bit,
PIC, og programmering,

Hilsen Michael

"Christian R. Larsen" <crlarsen@hotmail.com> skrev i en meddelelse
news:01c19dbc$c902c920$f0cd010a@0009-2006...
> Biker Mike <dko12134@vip.cybercity.dk> skrev i artiklen
> <a1utbj$1tcc$1@news.cybercity.dk>...
> > Hmmm, joe, Men der er lige det der med at PIC processorer er lidt
> speicelle
> > med hensyn til kommandoer, man opretter ikke bare lige en database i
> dem,
> > svaret som jeg havde håbet på var nok noget i retning af, "kommando"
> > (placerer bits i register) pause 10000 (pause 10 sec) "kommando"
> (aflæser
> > samlede antal bit og nulstiller) eller noget i den retning, Men tak
> for
> > svaret alligevel.
>
> Jeg kan ikke forestille mig, at du ikke kan oprette en simpel database.
> Selv i maskinkode kan man oprette en database. Det vil jo faktisk bare
> sige, at man allokkerer et stykke hukommelse til nogle bestemte data. Det
> må du da kunne, selv med en PIC processor?
>



Tomas Christiansen (15-01-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 15-01-02 23:12

Christian R. Larsen skrev:
> Jeg kan ikke forestille mig, at du ikke kan oprette en simpel
database.
> Selv i maskinkode kan man oprette en database. Det vil jo faktisk
bare
> sige, at man allokkerer et stykke hukommelse til nogle bestemte
data. Det
> må du da kunne, selv med en PIC processor?

Lad os lige slå én ting helt fast: Et ARRAY (en tabel) i RAM er IKKE
det samme som en DATABASE.

Begrebet database er langt mere omfattende, en blot en tabel oprettet
med Dim i én eller anden BASIC-variant.

Jeg tror ikke at nogen ved deres fulde fem begynder at oprette
databaser i systemer med f.eks. 1000 bytes til rådighed (i alt,
totalt, til heaps, stakke, variabler osv.). Selv simple tabeller skal
oprettes med omtanke i sådan et system!

-------
Tomas


Biker Mike (16-01-2002)
Kommentar
Fra : Biker Mike


Dato : 16-01-02 12:08


Joe det har du sikkert ret i, det er også sådan nogenlunde jeg selv ser det,
Jeg har fået et svar i en anden newsgruppe, hvor det blev anbefalet at bruge
den indbyggede timer i 16F84A, koden ser sådan ud i asm format, jeg håber
at Allan som svarede mig ikke har noget imod at jeg viser den her.

// opsætning af timer//

T0CS=1 // bruger timeren som tæler
PSA=1 // ingen prescaler
T0SE=1 // tæler på den positive flanke

// start med at tælle pulser //
TMR0=0 // Nulstiller timer

** insæt pause rutine **

???=TMR0 // værdien i TMR0 fortæler hvor mange pulser der er kommer under
pausen.

så skal jeg "bare" have den oversat til PIC Basic sprog, Men jeg har jo også
en hel vinter til det


Hilsen Michael


>Lad os lige slå én ting helt fast: Et ARRAY (en tabel) i RAM er IKKE
>det samme som en DATABASE.
>
>Begrebet database er langt mere omfattende, en blot en tabel oprettet
>med Dim i én eller anden BASIC-variant.
>
>Jeg tror ikke at nogen ved deres fulde fem begynder at oprette
>databaser i systemer med f.eks. 1000 bytes til rådighed (i alt,
>totalt, til heaps, stakke, variabler osv.). Selv simple tabeller skal
>oprettes med omtanke i sådan et system!
>
>-------
>Tomas
>



Tomas Christiansen (16-01-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 16-01-02 22:01

Biker Mike skrev:
> ... koden ser sådan ud i asm format ...
> så skal jeg "bare" have den oversat til PIC Basic sprog,

Ikke fordi jeg selv har prøvet at programmere en PIC processor før,
men umiddelbart ville jeg nok holde mig til assembler.

Du er jo alligevel, med sådan et "dyr", helt nede på bit-niveau, og så
kan man ligeså godt bide i det sure æble (med mindre man ligefrem
elsker at programmere i assembler - så er æblet vel sødt), og holde
sig på det niveau.

Med assembler er du også i stand til at presse langt mere kode ind i
processoren, end hvis du bruger et høj-niveau-sprog.

....og hvis diskussionen skal forstætte, bør det nok være et andet sted
end i denne gruppe, som kun er til VISUAL-BASIC.

-------
Tomas


Biker Mike (17-01-2002)
Kommentar
Fra : Biker Mike


Dato : 17-01-02 15:41


Det kan da godt være at du har ret, men jeg tror alligevel at jeg vil give
PIC Basic pro en chance, her kan mange avancerede rutiner klares med ganske
få kommandoer, Men hvem ved måske ender jeg også en dag med hovedet dybt
nede i "assambleren"

Tak for svarene.

Hilsen Michael



Christian R. Larsen (18-01-2002)
Kommentar
Fra : Christian R. Larsen


Dato : 18-01-02 10:32

Tomas Christiansen <toc@blikroer.removethis.dk> skrev i artiklen
<a229d1$1vra$1@news.cybercity.dk>...
> Lad os lige slå én ting helt fast: Et ARRAY (en tabel) i RAM er IKKE
> det samme som en DATABASE.

Nu kan man være flueknepper, men sagens kerne er altså, at man kan lagre en
mængde data i et array, derfor kalder jeg det en database. Du må gerne
kalde det noget andet, hvis du vil det.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste