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 Poprzedni  1, 2
 
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: Czw Mar 20, 2008 5:56 pm    Temat postu: Odpowiedz z cytatem

nie nie chce sprawdzic czy moze timer0 jest uszkodzony i zrobic to sam na timer1 ale juz zrobilem i dalej nic.
uruchomilem timer0 jako generator 1s i dziala ale jako counter nie chce dzialac
umi to ktos wgrac do procka i sprawdzic bo mnie juz szlak trafia , dobrze ze programowaniem na chleb nie zarabiam bo bym zdychal z glodu!!!!

ale ten program z dopisana linijka, gdzie z portu pb2 jest podawany sygnal na pb0, czy zlicza te impulsy
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: Czw Mar 20, 2008 6:33 pm    Temat postu: Odpowiedz z cytatem

Ale rozumię że zaminiłeś sobie końcówki ? tak jak ja to mam zrobioneprzy procku to komputera pokładowego ?

bo nie czytałem dokładnie Smile

Zamień końcówki i musi działać Smile

ale w programie masz błąd ma być start timer1

a potem stop timer 1

no i brakuje ci jeszcze
Enable Interrupts
enable timer1
ale to zaraz po konfigóracji timera

powinno to być mniej wiecej 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 , Gate = External , Mode = 1
Enable Interrupts 'odblokowanie globalnego systemu
'przerwa˝
Enable Timer0 'odblokowanie przerwania od

Config Pinb.2 = Output
S1 Alias Portb.2

Dim Frequency As Word 'deklaracja zmiennej FREQUENCY jako liczby 16-bitowej
Start timer0 '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
timer0 =0
Start timer0 'początek zliczania impulsów wejściowych
Wait 1 'zaczekaj 1 sekundę, czyli odmierz czas bramkowanie miernika
Stop Timer0 '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
***********************************


trocjhe niepoprawnie ale powinno być Smile- u mnie sie kompiluje Smile


[/quote]
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: Czw Mar 20, 2008 6:43 pm    Temat postu: Odpowiedz z cytatem

program sie kompiluje oki
wgrywam
na wyswietlaczu pojawia sie FRQ=: 0Hz
dioda mi miga
ale procek nie zlicza ile razy mignela dioda
(mam zwary port PB0 z PB2 i podlonczylem tez pod niego diode tak ze widze ze procek generuje impuls)
ale na wyswietlaczu nadal mam 0 Hz

ja testuje to zaraz na procku bo nie mam symulatora, pikuś mowil ze na symulatorze mu dziala ale mnie na procku nie


nie wiem czy to ma jakies znaczenie ale od portu PD2 do PD7 mam wyswietlacz polączony

PB0 zwarty z PB2 i pod to mam diode podpiętą
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: Nie Mar 23, 2008 8:54 am    Temat postu: Odpowiedz z cytatem

dobra tera zrobilem tak
podpiolem pod moja plytke atmega8 i pojawily sie nastepujace problemy

w czasie kompilacji jesli mam $regfile = "m8def.dat" i w ustawieniach gate = internal(external) wywala mi blad
ale jesli zrobie $regfile = "m16def.dat" to uklad sie kompiluje

czy ma moze ktos kto kolwiek jakis sprawdzony miernik czestotliwosci lub miernik impulsów z pelnym opisem pod atmega8 lub 16?
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 23, 2008 10:04 am    Temat postu: Odpowiedz z cytatem

No chłopie przecież pytałem na początku !!!!!! czy masz przerobiony procesoer ?? a teraz wynika z twojej wypowiedzi że nie- wiec jak ma ci zadziałać jak wejście timera podpięte jest do wyswietlacza ? To niby jak ma ci zliczać ?
Opis przeróbki jest na opłycie CD w opisie do kuimputera pokładowego- oczywisvcie pod wartunkiem że używasz moje płytki

A jak masz inny procek to musisz odpowiednio podpiąś i ma działąć bez gadki- moje zdanie jest takie ze cos poprpstu hardwarowo żle robisz Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
PiKuŚ
Zawsze na posterunku


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

PostWysłany: Nie Mar 23, 2008 10:19 am    Temat postu: Odpowiedz z cytatem

No to zmień konfiguracje timera na:
Kod:

Config Timer0 = Counter , Edge = Falling

Polecenia takie jak "Gate = External , Mode = 1" przeznaczone były do pracy z procesorami z rodziny 8051 dla pakietu Bascom8051.
Oczywiście dziwne jest to, że działają w kompilacjach dla niektórych procesorów AVR.
_________________
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: Nie Mar 23, 2008 12:47 pm    Temat postu: Odpowiedz z cytatem

Rafale spokojnie Wink wiem ze na twojej plytce wyswietlacz jest podlaczony pod portd.4 i nie mogl bym go wykorzystac.
Piszac ze podlaczylem teraz na plytce z Atmega8 chodzilo mi o to ze mam na zewneczneij uniwersalnej plytce wlutowany procek (atmega8) i przy pomocy kabelkow podpilem go pod moja plytke testową.
wywalilem wszystkie komendy zwiazane z wyswietlaczem i zrobilem to troche inaczej mianowicie ze jesli na counter policzy do wiecej jak 1 to ma zapalic sie dioda ale dalej nic Crying or Very sad podlanczajac atmega8 chcialem zobaczyc czy moze moj procek jakiego normalnie stosuje (atmega16 lub 32) nie jest uszkodzony

Kod:

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




Config Timer1 = Counter , Edge = Falling
Enable Interrupts                                           'odblokowanie globalnego systemu przerwa˝
Enable Timer0                                               'odblokowanie przerwania od
Start Timer0


Config Pinb.2 = Output
S1 Alias Portb.2

Dim Frequency As Word                                       'deklaracja zmiennej FREQUENCY jako liczby 16-bitowej
                                                             'uruchomienie licznika
Do                                                          'początek pętli programowej
                                                            'czyszczenie ekranu wyświetlacza

Frequency = 0
Counter1 = 0                                                'zawartość licznika 0 wynosi teraz 0
Timer1 = 0
Start Timer1                                                'początek zliczania impulsów wejściowych
Wait 2                                                      'zaczekaj 1 sekundę, czyli odmierz czas bramkowanie miernika
Stop Timer1                                                 'zatrzymaj licznik 0
Frequency = Counter0                                        'zmienna FREQUENCY przyjmuje wartość licznika 0, czyli określa liczbę 'zliczonych

If Frequency > 1 Then
Set Portb.1
End If

Do

S1 = 0
Waitms 20
S1 = 1
Waitms 20

Loop



Loop

Return 'koniec podprogramu
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: Nie Mar 23, 2008 1:40 pm    Temat postu: Odpowiedz z cytatem

endurasek, namieszałeś w programie do aż do bólu Exclamation

Pomieszałeś timer0 z timer1, źle skonfigurowałeś port wyjściowy "Config Pinb.2 = Output", nie pinb.2 Exclamation a portb.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: Nie Mar 23, 2008 3:56 pm    Temat postu: Odpowiedz z cytatem

nie nie spoko ten blad wynikal z tego ze w pewnym momencie chcialem przelonczyc na timer1 a ten kod z forum co widac skopiowalem pomiedzy zmianami oczywiscie timery0 i caunter0 mam załączone.

Kod:
$regfile = "m8def.dat"
$crystal = 16000000




Config Timer0 = Counter , Edge = Falling
Enable Interrupts                                           'odblokowanie globalnego systemu przerwa˝
Enable Timer0                                               'odblokowanie przerwania od
Start Timer0

Config Portb.1 = Output

S2 Alias Portb.1

Dim Ile As Word                                             'deklaracja zmiennej FREQUENCY jako liczby 16-bitowej


                                                             'uruchomienie licznika
Do                                                          'początek pętli programowej
                                                            'czyszczenie ekranu wyświetlacza

Ile = 0
Counter0 = 0                                                'zawartość licznika 0 wynosi teraz 0
Timer0 = 0
Start Timer0                                                'początek zliczania impulsów wejściowych
Wait 1                                                      'zaczekaj 1 sekundę, czyli odmierz czas bramkowanie miernika
Stop Timer0                                                 'zatrzymaj licznik 0
Ile = Counter0                                              'zmienna FREQUENCY przyjmuje wartość licznika 0, czyli określa liczbę 'zliczonych




If Ile > 1 Then
S2 = 1
End If







Loop

Return 'koniec podprogramu

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: Nie Mar 23, 2008 5:19 pm    Temat postu: Odpowiedz z cytatem

Według mojej wiedzy z bascoma polecenia Timer0 i Counter0 mogą być stosowanie zamiennie (a więc używamy albo pierwszej albo drugiej). Jeżeli używamy licznika do zaliczania zewnętrznych impulsów to nie jest konieczne startowanie Timera (polecenie start timer0) ponieważ wydanie komendy "enable timer0" jednoznaczne jest z gotowością licznika do pracy.

Spróbuj może tak:
Kod:

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

Config Timer0 = Counter , Edge = Falling
Enable Interrupts                                         
Enable Timer0                                           
Config Portb.1 = Output
S2 Alias Portb.1

Counter0 = 0                                               
Do                       
  Wait 1                                                     
  If Counter0 > 1 Then
    S2 = 1
    wait 1
    S2 = 0
    counter0 = 0
  end if
loop

Jeżeli licznik będzie cokolwiek zliczał to dioda powinna migać.
_________________
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: Nie Mar 23, 2008 6:39 pm    Temat postu: Odpowiedz z cytatem

hahahah counter zaczol zliczac ale... nie wiem czemu timer0 nie chce dzialac dopiero timer1 zaczol zliczac no ale to nie koniec bo teraz pytanko
jesli port T1 nie jest do niczego podlaczony to timer poprostu glupieje i zlicza sobie do ile da sie jak podlacze do masy to stopuje czy to jest normalne?
chodzi mi o to czy sygnal z kontraktrona musze podac na tranzystor i dopiero do procka czy moge bezposrednio?
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: Nie Mar 23, 2008 7:06 pm    Temat postu: Odpowiedz z cytatem

Po to się ustawia czy licznik ma być wyzwalany narastającym czy opadającym zboczem (opcja edge).
_________________
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: Nie Mar 23, 2008 8:40 pm    Temat postu: Odpowiedz z cytatem

spoko spoko Pikuś wielkie dzieki za pomoc i Tobie Rafale
a to wszystko z powodu ze timer0 nie działa hmmm ciekawe czemu?
Kod:

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

Config Timer0 = Counter , Edge = Falling
Enable Interrupts                                         
Enable Timer0                                           
Config Portb.1 = Output
S2 Alias Portb.1

Counter0 = 0                                               
Do                       
  Wait 1                                                     
  If Counter0 > 1 Then
    S2 = 1
    wait 1
    S2 = 0
    counter0 = 0
  end if
loop


zmieniam tylko z timer0 na timer1 i na opy tak samor robie z counterem
i tylko z timerem1 mi dziala ale to juz mniejsza z tym

pod spodem mam jeszcze jeden kod cos mi w nim nie pasuje chodzi o te zliczanie i warunki o których wczesniej rozmawialismy
czy macie moze inne propozycje?

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 Timer1 = Counter , Edge = Falling
Enable Interrupts
Enable Timer1
Config Porta.0 = Output
Config Porta.5 = Output
S1 Alias Porta.0
S2 Alias Porta.5
Dim Ile As Byte


Cls
Do
  Cursor Off
  Locate 1 , 1
  Lcd "FRQ=: " ; Ile ; "   "

  Ile = Counter1





     If Ile = 1 Then
     S1 = 1
     Waitms 5
     S1 = 0
     End If

        If Ile = 2 Then
        S1 = 1
        Waitms 5
        S1 = 0
        Waitms 5
        S1 = 1
        Waitms 5
        S1 = 0
        End If

           If Ile = 3 Then
           S1 = 1
           Waitms 5
           S1 = 0
           End If

              If Ile = 4 Then
              S1 = 1
              Waitms 5
              S1 = 0
              Waitms 5
              S1 = 1
              Waitms 5
              S1 = 0
              End If

                 If Ile = 5 Then
                 S1 = 1
                 Waitms 5
                 S1 = 0
                 Waitms 5
                 S1 = 1
                 Waitms 5
                 S1 = 0

                 Counter1 = 0
                 End If


S2 = 1
Waitms 50
S2 = 0
Waitms 50


Loop



oczywiscie to jest tylko poglondowy kod potem usune wszystkie opoznienia da sie go skrócić i czy stosuje sie jakies dodatkowe komendy w celu unikniecia opóznień w układzie, gdzies o tym czytalem ale teraz nie umiem zaskoczyc gdzie i jaka to komenda byl

A jeszcze jedno co zauwazylem to wczesniej wspomnialem ze licznik szaleje i zaczyna zliczac do 255 nawet jak nic nie robie. Przyczyna byla dosc dziwna , jak mialem podlaczony kabelek do portu T1 wisial w powietrzy nie podlączony to tak robil a jak go odpiołem to sie uspokoiło Smile
nie sadzilem ze uklad jest tak czuly
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: Nie Mar 23, 2008 9:04 pm    Temat postu: Odpowiedz z cytatem

Nie wiem co prawda jaka będzie max. częstotliwość impulsów wejściowych, ale obawiam się że Twój program może nie działać gdyż pętla głowna będzie na wolno się wykonywać.
Spróbuj dopracować rozwiązanie, które podałem na samym początku tego wątku.
_________________
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 24, 2008 9:34 am    Temat postu: Odpowiedz z cytatem

Oki troche to poprzerabialem tak jak mowiles ale jeszcze mam jedno ale.
Kolo sie kreci i podaje impulsy z kontraktrona do procka no i daj my na to z ustaleń wczesniejszych:

1 impuls wej = 1 wyj
2 impuls wej = 2 wyj
3 impuls wej = 1 wyj <-- przy tym kolo stanie
4 impuls wej = 2 wyj
5 impuls wej = 2 wyj

5 impulsów wej = 8 impulsów wyjściowych

Koło staneło przy 3 impulsie i procek ciagle to pamieta ( na wyj ciagle podaje po jednym impulsie) choc juz nie sa podawane impulsy wejsciowe.
Wydaje mi sie ze powinna byc jeszcze wprowadzona jakas komenda typu:

Jesli przez jakis tam czas nie sa podawane impulsy to counter1 sie zeruje

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 Timer1 = Counter , Edge = Falling
Enable Interrupts
Enable Timer1
Config Porta.0 = Output
Config Porta.5 = Output
S1 Alias Porta.0
S2 Alias Porta.5
Dim Ile As Byte
counter1 = 0

Cls
Do

  Cursor Off
  Locate 1 , 1
  Lcd "FRQ=: " ; Ile ; "   "
  Ile = Counter1


Select Case Ile

   Case 1 : Gosub Impuls1
   Case 2 : Gosub Impuls2
   Case 3 : Gosub Impuls1
   Case 4 : Gosub Impuls2
   Case 5 : Gosub Impuls2
             Counter1 = 0
   Case Is > 5 : Counter1 = 0

End Select



S2 = 1
Waitms 50
S2 = 0
Waitms 50


Loop


Impuls1:
   S1 = 1
   Waitms 5
   S1 = 0
Return

Impuls2:
  S1 = 1
  Waitms 5
  S1 = 0
  Waitms 5
  S1 = 1
  Waitms 5
  S1 = 0
Return
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 24, 2008 10:17 am    Temat postu: Odpowiedz z cytatem

Mój program ten na przerwaniu INT0 pozbawiony był tego problemu. Jednak jeżeli cały czas chcesz to zrobić na liczniku, to musi to wyglądać mniej więcej 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 Timer1 = Counter , Edge = Falling
Config Porta.0 = Output
Config Porta.5 = Output

Enable Interrupts
Enable Timer1

S1 Alias Porta.0
S2 Alias Porta.5
Dim Ile As Byte
counter1 = 0
ile = 0
Cls
Do

  Cursor Off
  Locate 1 , 1
  Lcd "FRQ=: " ; Ile ; "   "
   
  if ile <> Counter1 then
    Ile = Counter1

    Select Case Ile
      Case 1 : Gosub Impuls1
      Case 2
          Gosub Impuls1
          Gosub Impuls1
      Case 3 : Gosub Impuls1
      Case 4
          Gosub Impuls1
          Gosub Impuls1
      Case 5
          Gosub Impuls1
          Gosub Impuls1
          Counter1 = 0   
      Case is > 5 : Counter1 = 0
    End Select

    S2 = 1
    Waitms 50
    S2 = 0
    Waitms 50
  end if 
Loop

Impuls1:
   S1 = 1
   Waitms 5
   S1 = 0
   Waitms 5
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 25, 2008 6:30 pm    Temat postu: Odpowiedz z cytatem

super program dziala.
A jak odczytac impulsy z portu Int0??? bo ten program co mi wczesniej podales dziala reaguje na impulsy ale jak bym chcial wyswietlicz na wyswietlaczu?
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 25, 2008 6:38 pm    Temat postu: Odpowiedz z cytatem

Ale co chcesz wyświetlić na wyświetlaczu?
_________________
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 25, 2008 7:06 pm    Temat postu: Odpowiedz z cytatem

wczesniej podales programik do oblugi portu Int0. Jest wejscie zewnecznego przerwania. Rozumiem przez to ze ten port musi jakos zliczac impulsy a skoro tak robi to musi sie dac wyswietlic jego stan licznika? czy moze to inaczej dziala??
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


a potem tez napisales taki programik ale on juz nie dziala

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


oczywiscie porty wyswietlacza zmienilem bo zajmowaly port Int0
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 25, 2008 7:32 pm    Temat postu: Odpowiedz z cytatem

Zarówno pierwszy jak i drugi programik powinien działać.

Jeżeli chodzi o programik w którym wykorzystuje przerwania INT0, to impulsy liczone są do 5ciu w zmiennej K. Przerwanie INT0 nie jest licznikiem Exclamation
Aby wyświetlić który to impuls wstaw np. do pętli głównej (pomiędzy "do" a "loop" polecenie "home : lcd "Impuls: "; K"
_________________
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: Czw Mar 27, 2008 6:46 pm    Temat postu: Odpowiedz z cytatem

pikuś jestes wielki nie wiem skad ty tyle wiesz ale tak 3mac 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: Czw Mar 27, 2008 6:52 pm    Temat postu: Odpowiedz z cytatem

Endurasek, wielkie dzięki za te słowa. Myślę, że jakoś się po nich pozbieram i nie spocznę na laurach Very Happy .
_________________
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 Poprzedni  1, 2
Strona 2 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