basic programmering. Hur gör man?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Raceman
Inlägg: 122
Blev medlem: 30 augusti 2003, 15:16:09

basic programmering. Hur gör man?

Inlägg av Raceman »

Jag har nu förstått(tror jag) att en 16f84 med 4Mhz kristall gör 1000000 instruktioner per sekund.(4000000(xtal)/4=1000000/4=25Khz)

Om jag då matar in 200pulser så kan man dela dom med 100 och få
2pulser/0,1sekund. Tar man då 2 *6000 så blir det 12000.
Vad får jag då på output? :?
Skall jag dela summan med 4 tro?

Man lär så länge man lever även felaktigheter tyvärr. :)

Mvh Tony
Användarvisningsbild
Raceman
Inlägg: 122
Blev medlem: 30 augusti 2003, 15:16:09

Inlägg av Raceman »

Det var visst ingen som hade några synpunkter.

Kanske man skall ta och inhandla några böcker om piccisar.

Någon som har någon länk till en site med lite mer info ang inmatningar på en 16f84 eller 16f628?
Jag har sökt med google men har tyvärr tömt mina ideer på sökord ang detta projekt.
Har kollat en massa Bas,Asm och Basic filer men har inte hittat någon riktig
förklaring till dessa. Flera av dessa är varvräknare men uträkningarna har hela tiden varit helt olika fast dom gör samma sak.

Mvh Tony
Sebastian
Inlägg: 87
Blev medlem: 11 juli 2003, 21:13:36
Ort: Ljusdal, Gävleborgs län.
Kontakt:

Inlägg av Sebastian »

Har du kollat igenom det här forumet? det finns en massa länkar i trådarna...
Användarvisningsbild
Raceman
Inlägg: 122
Blev medlem: 30 augusti 2003, 15:16:09

Inlägg av Raceman »

Jag har nog läst det mesta av vad som länkats och sagts i detta forum.
Klart är väl att något som är jätte intressant i ämnet har missats med min
otur. Jag skall gå igenom allt igen efter helgen.

Jag har testa en program ide från en person på detta forum men tyvärr så fungerade inte detta och jag kan tyvärr inte se varför det inte skulle fungera.
Troligtvis så var det för enkelt.
Jag har oxo gjort flera försök att lista ut programmets uppbyggnad genom att testa detta praktiskt men utan att lyckas.
egh01
Inlägg: 58
Blev medlem: 18 september 2003, 11:25:33

Inlägg av egh01 »

Hur får du till 1 000 000 / 4 = 25KHz, borde det inte bli 250K. Varför gör du över huvudtaget en division till?

Vad är det för kod du försöker lura ut? Skicka över det som ett PM (om dom kan va så långa) så kan jag ju alltid kolla på't. Jag är rätt ny jag med (det kanske inte du är?) så det är inte säkert att jag kan hjälpa dig men man kanske alltid lär sig något på kuppen.
Användarvisningsbild
Raceman
Inlägg: 122
Blev medlem: 30 augusti 2003, 15:16:09

Inlägg av Raceman »

Hej egh10!

Jag är deffinitift(?) en nybörjare på piccisar. :)
Som jag skrev i pm.et så blev det felräkning. Då jag läste databladet
så stod det att Pulsin på 16f84 med 4Mhz klocka kunde räkna
till max 25Khz = 25000Hz och som jag oxo skrev "tror jag". :)

Ingen har sett detta fel och ej heller kunnat lämnat info hur detta skall
räknas ej heller har någon lämnat någon teori om hur beräkningarna görs i piccen.

De var ett tag sedan man gick i skolan så jag skall nog försöka leta
matematiska länkar att läsa oxo. :D

Mvh Tony
danei
EF Sponsor
Inlägg: 27416
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

raceman: kan su beskriva vad det är du försöker göra? Jag förstår inte frågan riktigt.
Användarvisningsbild
Raceman
Inlägg: 122
Blev medlem: 30 augusti 2003, 15:16:09

Inlägg av Raceman »

Hej !

Jag vill ha en 16f84 eller en 16f628 att räkna pulserna från min tändspole på bilen. När det finns rätt antal pulser så skall en led lysa och sedan slockna när pulserna sjunker.

Jag fick denna program ide från mullemek

input var byte
frekvens var byte

frekvens = 333

loop:
Count portb.0,1000,input
If input => frekvens then
high portb.1
else
low portb.1
endif
goto loop
end

Men jag har satt Pulsin istället för Count pga att jag testat denna ide i bilen och inte fått detta att fungera. Pulsin fungerar inte heller. Jag har ändrat
frekvens upp och ner utan positivt resultat.

Jag har läst någonstans att ingången delas med 4 men vet ej om dessa
program rader räcker eller om jag måste ha ett interupt för att kolla eller räkna det som lagts minnet.
Jag har heller inte lyckats läsa mej till om svaret jag får vid en fråga om vad som finns i minnet är 1 eller 0 eller om det går att få ut en siffra som tex 266.

Jag hittade något liknande progam som ser ut så här.

' Listing 1: TACH.BAS
' The BASIC Stamp serves as a tachometer. It accepts pulse input through
' pin 7, and outputs rpm measurements at 2400 baud through pin 0.
input 7
output 0
Tach: pulsin 7,1,w2 ' Read positive-going pulses on pin 7.
let w2 = w2/100 ' w2/100 divided into 60,000 equals
let w2 = 60000/w2 ' 6,000,000/w2 (60 seconds in 10-us units).

' Transmit data followed by carriage return and linefeed.
serout 0,N2400,(#w2," rpm",10,13)
pause 1000 ' Wait 1 second between readings
goto Tach

Men jag tror att någon skrivit fel på andra LET raden.
Skall väl var så här:
let w2 = 6000*w2

Då skulle 266.666 pulser / 100 bli 2.66 och detta * 6000 blir 15999,96

Delas ingången med 4 så blir 266.666 = 66,6665 / 100 = 0,666 * 6000 = 3999,99 Varv per minut

Delas utgången med 4:a så blir resultatet lika.


Jag är inget mattegeni och jag har inte kunnat lista ut vad piccen gör,
så det här ovan är bara en ren gissning på funtionen.
Programmet tach.bas har jag inte testat i bilen.


Uträkningen för antal pulser från tändspole.
Antal pulser = ( Antal cylindrar * Varvtalet) / 120 = pulser per minut.
Ex. (8*4000) / 120 = 266,666

Mvh Tony
AsmN
Inlägg: 76
Blev medlem: 10 juni 2003, 17:39:16
Ort: Pedersöre, Finland
Kontakt:

Inlägg av AsmN »

Jag har aldrig användt basic så jag vet inte om detta fungerar där, men jag skulle använda clock-in (RA4/T0CKI) på Timer0 som en räknare...
Läs om Timer0 i databladet.
Användarvisningsbild
tusse
Inlägg: 1364
Blev medlem: 19 augusti 2003, 21:56:17
Ort: Järfälla

Inlägg av tusse »

Hmmmmmmmmmmm detta kan inte stämma, 8 pulser per varv?
En fyrcylindrig fyrtaktsmotor tänder väl bara 2 ggr per varv, borde då inte en åttacylindrig fyrtaktsmotor tända 4 ggr per varv.
En fyrtaktsmotor behöver två varv, Insug/Komp i första varvet Arbetstakt/Avgas i andra varvet.
danei
EF Sponsor
Inlägg: 27416
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

jo det stämmer. men en minut har inte 120sekunder. så det blir rätt i slutändan
Användarvisningsbild
Raceman
Inlägg: 122
Blev medlem: 30 augusti 2003, 15:16:09

Inlägg av Raceman »

Men man skall nog komma ihåg att dela resultatet med 60 om man skall
få programmet att räkna rätt.

Kommandot Count har jag ju satt till en sekund och då kan man ju aldrig få
333 pulser eller hur?

Jag har klantat mej rejält. :( :(

333 pulser/min skall ju vara 5,5pulser på 1sekund.

Detta skall testas i morgon. :)

Hoppas att allt fungerar. Tack till egh01 som hjälpt mej en heldel offline.
Användarvisningsbild
Raceman
Inlägg: 122
Blev medlem: 30 augusti 2003, 15:16:09

Inlägg av Raceman »

Glöm vad jag skrev här ovan.

Jag var nog "lite" borta i går kväll. :oops:

Det blev fel överallt. :D
Skriv svar