Forum www.nestor-electronic.pl Strona Główna www.nestor-electronic.pl
Forum sterowników procesorowych- programy BASCOM
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Przerobienie licznika w milach na km/h ( Counter0 )???
Idź do strony 1, 2  Następny
 
Napisz nowy temat   Odpowiedz do tematu    Forum www.nestor-electronic.pl Strona Główna -> Pomoc w programowaniu BASCOM
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Nie Mar 16, 2008 9:24 am    Temat postu: Przerobienie licznika w milach na km/h ( Counter0 )??? Odpowiedz z cytatem

A teraz wpadlem na taki pomysł mianowicie:
Posiadam motocykl sprowadzony z GB co za tym idzie licznik w milach pokazuje przebieg jak i predkość ( ale kierownica jest po tej stronie co ma byc Very Happy ) no i denerwuje mnie to ze przebieg jest w milach a co do predkosci to na blacie sa podane dwie skale w milach i w km/h to jeszcze idzie scierpiec.


I tak sobie wymyslilem to ze by to przerobic za pomoc procka naszego kochanego Very Happy
Czujnikiem sygnału predkości pewnie jest jakis kontraktron ktory zlicza ilość "zwarc styków" i wysyła go do procka pokładowego ktory wyswietla juz w milach wartosci.
No i zakładając ze np jeden obrót koła powoduje jedno zwarcie kontraktrona stanowi jakas tam częsc przebytego odcinka ktory jest wyswietlony w milach to teraz jezeli 1mila = 1,66km (nie pamietam dokładnie) to ten sygnał powinien byc pomnożony przez wartość 1,66 to da nam na wartość wlasciwą. Czyli np port Pb1 ( na ktory wysylam sygnal z kontraktrona) zwieram jeden raz to na wyjsciu Pb2 ten sygnal juz prawie dwa razy powinien byc zwarty.
Zamontował bym to w szeregu z czujnikiem i powinno to rozwiazac sytułacje ale zastanawiam sie bo z tego samego sygnalu jest w jakis sposob podawane napiecie do wskaznika predkosci i jezeli ja bym sobie zrobil tak jak mysle to sie okarze ze wskazówka zamknie licznik juz przy 100km/h a gdzie tam ponad 200km/h to ona oszaleje i zrobi pelny obrót.
Moze juz ktos sie z tym problemem borykał?[/img]
Z tego co pamiętam to wskazówka z predkości jest napedzana przez cewke ( wydaje mi sie ze to działa tak jak analogowy wskaznik napięcia)


Ostatnio zmieniony przez endurasek dnia Pon Mar 17, 2008 6:45 pm, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Nie Mar 16, 2008 2:58 pm    Temat postu: Odpowiedz z cytatem

podłącz mój komputerek jako czujnik prędkośc hallotron i wszytrko masz, jak motocykl jest bez wtrysku to wgrasz wersję dla autek bez wtrysku i po problemie Smile
Ale oczywqiści emoże sz sobie napisa cosobny programik
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Nie Mar 16, 2008 6:42 pm    Temat postu: Odpowiedz z cytatem

no wlasnie motocykl jest na wtrysku. a wolał bym sobie jednak przerobic ten komputer pokladowy co mam a nie dokladac nic. ja wiem ze tak bylo by latwiej ale mi chodzi o rozwiazanie problemu bo takich jak ja co maja liczniki w milach jest wiecej
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Pon Mar 17, 2008 4:05 pm    Temat postu: Odpowiedz z cytatem

No dobra a jak zrobic cos takiego.
jeden sygnal z kontraktrona (0) idzie do kontrolera i na wyjsciu niego powinio powinno mi sie to (0) pokazac ale 1,6 razy wiecej
moze inaczej jedno (0) z kontraktrona daje nam na wyjsciu procka (0) i jeszcze jedno nie pelne .
Nie wiem jak to zobrazowac moze tak
zakladajac ze jeden sygnal z kontraktrona daje nam 1Mile to na wyjsciu z procka musze miec 1,6 (km) ze by miec prawidlowy odczyt
Jeszcze inaczej
5 sygnałów z kontraktrona powinno nam dawac 8sygnałow z procka
czyli taki licznik jezeli 5 razy pojawi sie (0) na wejsciu to na wyjsciu pojawi sie 8 razy (0)
Poszukuje jakies komendy co by liczyla sygnaly.


5x 1mila = 5 mil i jedno czesnie mnoze
5x 1,6km = 8
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Pon Mar 17, 2008 6:46 pm    Temat postu: Odpowiedz z cytatem

dobra znalazlem polecenie takie jak Counter0 no ale jak je stosowac??? a moze jakies inne??
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pon Mar 17, 2008 7:28 pm    Temat postu: Odpowiedz z cytatem

endurasek, ja bym to zrobił tak:

1. zliczał cyklicznie impulsy wejściowe do 5
2. aby uzyskać jak największą dokładność to po:
- 1 impulsie wej. generowany byłby 1 impuls wyj.
- 2 impulsie wej. generowane byłby 2 impulsy wyj.
- 3 impulsie wej. generowany byłby 1 impuls wyj.
- 4 impulsie wej. generowane byłby 2 impulsy wyj.
- 5 impulsie wej. generowane byłby 2 impulsy wyj.
i mamy razem 8 impulsów wyjściowych na 5 wejściowych.

Nieprawdaż jakie to proste Very Happy
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Pon Mar 17, 2008 8:13 pm    Temat postu: Odpowiedz z cytatem

hahahaha proste dla kogos kto sie na tym zna i siedzi w temacie!!!! a ja za bardzo tego nie kumam
W miedzy czasie zaczolem juz cos kabinowac ale wiem ze to nie ma sensu
ten program jest narazie zrobiony tak ze jak przycisne 5 razy klawisz to ma mi 8 razy zaswiecic sie dioda ale i tak nie działa Sad

$regfile = "m16def.dat"


$crystal = 1600000

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2

Config Timer0 = Counter , Gate = Internal , Mode = 1

Dim Impuls As Byte
Dim Led1 As Byte
Dim Predkosc As Word


Config Pinb.4 = Output





Led1 Alias Portb.4






Do


Impuls = 0
Counter0 = 0
Start Counter0
Waitms 250
Waitms 250
Waitms 100
Stop Counter0
Predkosc = Counter0
If Predkosc < 5 Then




Led1 = 1
Waitms 100
Led1 = 0
Waitms 100
Led1 = 1
Waitms 100
Led1 = 0
Waitms 100
Led1 = 1
Waitms 100
Led1 = 0
Waitms 100
Led1 = 1
Waitms 100
Led1 = 0
Waitms 100
Led1 = 1
Waitms 100
Led1 = 0
Waitms 100
Led1 = 1
Waitms 100
Led1 = 0
Waitms 100
Led1 = 1
Waitms 100
Led1 = 0
Waitms 100
Led1 = 1
Waitms 100
Led1 = 0

End If
Reset Portb.0

Loop



Napisales po 1impulsie po 2gim itd no ale to tez chyba musi byc jakos zliczane ze ma zliczac do 5 i od nowa ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pon Mar 17, 2008 9:18 pm    Temat postu: Odpowiedz z cytatem

Oj kolego już na samym początku przy definicji Timer0 namieszałeś a dalej to już tylko bardziej się pogrążałeś Sad .
Proponuję napisać od początku po zapoznaniu się z konfiguracją timer'ów Wink .
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Pon Mar 17, 2008 11:29 pm    Temat postu: Odpowiedz z cytatem

endurasek, dla przykładu program może wyglądać mniej więcej tak:

Kod:

Enable Interrupts
Enable Int0    ' portd.2

Config Portb.0 = Output

Wyjscie Alias Portb.0
Dim K As Byte

On Int0 Przerwanie0

Reset Wyjscie
K = 0

Do
Loop

Przerwanie0:
  Incr K
  Select Case K
    Case 2 : Gosub Gen_Impuls
    Case 4 : Gosub Gen_Impuls
    Case 5
      Gosub Gen_Impuls
      K = 0
  End Select
  Gosub Gen_Impuls
Return

Gen_Impuls:
  Set Wyjscie 
  Waitms 500    ' parametrami przy waitms ustalasz wypełnienie   
  Reset Wyjscie
  Waitms 500   
Return

_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Wto Mar 18, 2008 6:56 am    Temat postu: Odpowiedz z cytatem

nie wiedzialem jak ta komende stosowac to znalazlem w necie cos takiego i na jego postawie cos chcialem zrobic

'-----------------------------
' OPEL CORSA
' Obrotomierz - TID
' V.2.0beta
' BY D.KULAWINEK(c)'05
'-----------------------------
'formula obr/min: 30000 / rozdzielczość_wskazań = czas_pomiaru impulsów
'przy t=600ms: ilość_impulsów * 50 = obr/min
'wykorzystywane porty:
'Scl P1.0
'Sda P1.1
'Mrq P1.2
'Data P3.0
'Impulsy cewki P3.4
$crystal = 12000000
$lib "ice.lib"
$external Wait_sda
$external Czekaj
$external Takt
$external I2c_start
$external Tid_ende
$external I2c_send
$external Pisz_tid
Config Timer0 = Counter , Gate = internal , Mode = 1
Dim Tekst As String * 8
Dim Wartosc As String * 4
Dim Impuls As Byte
Dim Obroty As Word
Do
Impuls = 0
Counter0 = 0
Start Counter0
Waitms 250
Waitms 250
Waitms 100
Stop Counter0
Impuls = Counter0
Obroty = Impuls * 50
While Impuls < 7
Set P3.0
Wend
Reset P3.0
Wartosc = Str(obroty)
Tekst = Wartosc + " OBR"
$asm
mov r0,#{Tekst}
lcall Pisz_TID
$end Asm
Loop


dzisiaj rano na szybko twoj programik wgralem do procka ale cos nie dzierga dioda sobie swieci i gasnie czy przycisne przycisk czy nie tak samo.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Wto Mar 18, 2008 7:51 am    Temat postu: Odpowiedz z cytatem

No to jeszcze mała modyfikacja programu:

Kod:

Enable Int0
Config Portb.0 = Output
Config Int0 = Falling
Enable Interrupts

Wyjscie Alias Portb.0
Dim K As Byte

On Int0 Test

Reset Wyjscie
K = 0

Do
Loop

Test:
  Disable Int0
  Enable Interrupts
  Incr K
  Select Case K
    Case 2 : Gosub Impuls
    Case 4 : Gosub Impuls
    Case 5
      Gosub Impuls
      K = 0
  End Select
  Gosub Impuls
  Enable Int0
Return

Impuls:
  Set Wyjscie
  Waitms 500
  Reset Wyjscie
  Waitms 500
Return

_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Wto Mar 18, 2008 4:39 pm    Temat postu: Odpowiedz z cytatem

programik dalej nie dziala ale to juz nie to mnie martwi tylko chcial bym sie dowiedziec jak dziala polecenie Counter0 jakis przyklad dzialajacy bo z tego co widze te zaczerpniete z neta sa do bani!!!
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Wto Mar 18, 2008 5:20 pm    Temat postu: Odpowiedz z cytatem

Programik powinien jak najbardziej działać, przerwanie wymuszane jest na porcie INT0, a dioda powinna być podłączona do portu: PORTB0

Counter0 jest to zmienna która odzwierciedla 8 bitowy rejestr sprzętowy licznika TIMER0.
Możesz do niej zarówno zapisać wartość jak i ją odczytać.

Jeżeli chodzi o przykład to znajdziesz na pewno na płycie CD dołączanej przez Rafała, szukaj zegarka albo czegoś podobnego.
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Wto Mar 18, 2008 6:12 pm    Temat postu: Odpowiedz z cytatem

no nie dzierga
ale niech mi ktos powie co ja robie zle prosty program wykabinowalem ale nie dziala



$regfile = "m16def.dat"

$crystal = 16000000


Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2

Config Timer0 = Counter , Gate = Internal , Mode = 1


Dim Ilosc As Word


Enable Interrupts
Start Counter0
Cls

Do

Locate 1 , 1

Lcd "ile:" ; Ilosc



Start Counter0

Waitms 250
Waitms 250

Stop Counter0
Ilosc = Counter0



Loop


program ma pokazywac na wyswietlaczu ile razy zostal nacisniety przycisk ktory jest podlaczony na porcie PB0 i zwieram go do masy
moze zapomnailem set portb.0??? albo co
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Wto Mar 18, 2008 7:02 pm    Temat postu: Odpowiedz z cytatem

Ja bym to zrobił tak:

Kod:

$regfile = "m16def.dat"
$crystal = 16000000

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Timer0 = Counter , Edge = Rising

Enable Interrupts
Enable Timer0

Dim Ilosc As Word

Tcnt0 = 0
Cls
Do
  Ilosc = Tcnt0
  Locate 1 , 1
  Lcd "ile:" ; Ilosc
  Waitms 250
Loop

_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.


Ostatnio zmieniony przez PiKuŚ dnia Sro Mar 19, 2008 4:29 pm, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Wto Mar 18, 2008 7:45 pm    Temat postu: Odpowiedz z cytatem

czegosc jeszcze brakuje? po wgraniu do procka wyswietla " Ile:0 " przycisk jest podlaczony do koncówki Portb.0 (xck/T0) i zwieram do masy

Moze mu chodzi o to ze na samym poczatku wpisales Tcnt0 = 0 i on ta wartosc bedzie wyswietlac na LCD a nie z licznika???

On zliza teraz ale co jakie stany 0 czy 1? bo moze cza ten port ustawic w stan wysoki?


z tego co przeczytalem to T0 jest rejestrem przepelnieniowym czyli zlicza do 255 chyba po czym sie resetuje i liczy od nowa. to by mi fest pasowal bo bym go co piaty impuls kasowal a w miedzy czasie przypisal mu posrednie komendy jak wczesniej zaproponowales ale jak narazie cos nie zlicza Confused
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Wto Mar 18, 2008 7:55 pm    Temat postu: Odpowiedz z cytatem

Komenda Tcnt0 = 0 zeruje licznik

Zgodnie z konfiguracją licznika:

Config Timer0 = Counter , Edge = Rising

jego wartość zwiększa się wraz z pojawieniem się narastającego sygnału (rising) czyli z 0/1.
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Wto Mar 18, 2008 8:11 pm    Temat postu: Odpowiedz z cytatem

zrobilem tak
wgralem ten program
wziolem baterie paluszek podlaczylem mase a z porta T0 poprowadzilem kabelek i dotykalem plusa bateri no i nie dzierga
moze juz od prob ten port uszkodzilem Confused
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Wto Mar 18, 2008 8:24 pm    Temat postu: Odpowiedz z cytatem

1,5V jak na logiczną "1" to zamało Smile
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Wto Mar 18, 2008 8:31 pm    Temat postu: Odpowiedz z cytatem

logiczne 1 idealnie to 5 V

Ale możesz próbować jużokoo 3,5 V powinno działać
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Wto Mar 18, 2008 8:35 pm    Temat postu: Odpowiedz z cytatem

dobra tera ustawilem jeden z portów w stan wysoki i pod niego przykladalem kabel i tez nic Confused
jedynka logiczna jest cos od 2.3 do 5v ( czasami mi lapal uklad na nizszym napieciu ale to nie w tym przypadku ) bo tu wcale nic nie lapie i nie liczy

mam nadzieje ze pory w atmega 8 i 16 nie zmieniaja sie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Wto Mar 18, 2008 8:46 pm    Temat postu: Odpowiedz z cytatem

Na symulatorze zarówno pierwszy (ten który na 5 impulsów daje 8 ) jak i drugi program działa poprawnie, także ja już nie wiem co źle robisz Sad
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Wto Mar 18, 2008 8:50 pm    Temat postu: Odpowiedz z cytatem

tera to ja ide spac Wink i pomysle nad tym a jutro powiem co wymyslilem . napewno cos popier...... i jakis glupi blad robie ale dojdziemy do tego Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Wto Mar 18, 2008 8:52 pm    Temat postu: Odpowiedz z cytatem

No to czekamy z niecierpliwością Wink
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Sro Mar 19, 2008 4:14 pm    Temat postu: Odpowiedz z cytatem

bo mnie zaraz cos rozpier...... ani na symulatorze mi nie dzierga ani na procku no co moge zle robic, wgrany program pokazuje na wyswietlaczu "ile:00" do portu PB0(xck/t0) podlanczylem kabelek którym dotykam +5V i nic. Na symulatorze moze cos nie mam ustawione ale czemu na procku mi nie dziala? to jest tak proste ze az glupie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Sro Mar 19, 2008 4:32 pm    Temat postu: Odpowiedz z cytatem

Poniżej link do print screen'u z symulatora Smile

http://pijacek.eu.interia.pl/pliki/timer0.PNG
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Sro Mar 19, 2008 6:20 pm    Temat postu: Odpowiedz z cytatem

to czemu symulator mi nie dzialal to wiem bo ty masz sprzetowy a ja to chcialem programowo sprawdzic ale to nic... moj blad

dopisalem 4linijki i zrobilem tak ze zwarlem port pb0 i pb2 a do portu pb2 dopisalem linijke ze by dzialal jak generator impulsu (podpiolem diode miga) ale nie zlicza




Kod:

$regfile = "m16def.dat"
$crystal = 16000000

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Timer0 = Counter , Edge = Rising

Enable Interrupts

Dim Ilosc As Word

Config Pinb.2 = Output
S1 Alias Portb.2

Tcnt0 = 0
Cls
Do
  Ilosc = Tcnt0
  Locate 1 , 1
  Lcd "ile:" ; Ilosc
  Waitms 250

  Do
  S1 = 1
  Waitms 50
  S1 = 0
  Waitms 50
  Loop


Loop


Ostatnio zmieniony przez endurasek dnia Sro Mar 19, 2008 7:33 pm, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Sro Mar 19, 2008 7:10 pm    Temat postu: Odpowiedz z cytatem

zrobilem tez tak znalazlem gdzies w necie ale i tak nie dziala moze mam timer uszkodzony?

Kod:

$regfile = "m16def.dat"
$crystal = 16000000

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2


Config Timer0 = Counter , Gate = External , Mode = 1

Config Pinb.2 = Output
S1 Alias Portb.2

Dim Frequency As Word                                       'deklaracja zmiennej FREQUENCY jako liczby 16-bitowej
Start Counter0                                              'uruchomienie licznika
Do                                                          'początek pętli programowej
Cls                                                         'czyszczenie ekranu wyświetlacza
Lcd "FRQ=: " ; Frequency ; " Hz"                            'wyświetl liczbę zliczonych w ciągu 1 sekundy impulsów 'wejściowych
Frequency = 0
Counter0 = 0                                                'zawartość licznika 0 wynosi teraz 0
Start Counter0                                              'początek zliczania impulsów wejściowych
Wait 1                                                      'zaczekaj 1 sekundę, czyli odmierz czas bramkowanie miernika
Stop Counter0                                               'zatrzymaj licznik 0
Frequency = Counter0                                        'zmienna FREQUENCY przyjmuje wartość licznika 0, czyli określa liczbę 'zliczonych


Do
  S1 = 1
  Waitms 50
  S1 = 0
  Waitms 50
  Loop


Loop
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
endurasek
Lekko zaangażowany


Dołączył: 14 Lis 2007
Posty: 69

PostWysłany: Czw Mar 20, 2008 4:47 pm    Temat postu: Odpowiedz z cytatem

a jak by wygladala komenda jesli bym chcial to liczyc przy pomocy timera1?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
PiKuŚ
Zawsze na posterunku


Dołączył: 21 Sty 2008
Posty: 218
Skąd: Grudziądz

PostWysłany: Czw Mar 20, 2008 5:42 pm    Temat postu: Odpowiedz z cytatem

Ale o jaką komendę Ci chodzi?
zm1=counter1 ???
_________________
Nadmiar wiedzy jest równie szkodliwy jak jej brak.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.nestor-electronic.pl Strona Główna -> Pomoc w programowaniu BASCOM Wszystkie czasy w strefie CET (Europa)
Idź do strony 1, 2  Następny
Strona 1 z 2

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


Powered by phpBB © 2001, 2005 phpBB Group