Sterowanie Klawiatury przez impulsator.


Witaj Mirek AMBILIGHT wyszedl super :) he mam juz impulsatory, 20 i 30 impulsowe na obrot :) wiec mam pytanie czy ten kod umieszczony na stronce wystaczy by zamienic impulsy z impulsatora na impulsy na 2 wyjsciach procka, to sprobuje tego uzyc, pytanie odnosnie tego jaka komeda moge zrobic by z kolejnego wejscia procek przeleczal sekwecyjnie koleje kopie wyjsc tak by w sumie byly 3 pary i p sek czasu na regolacje a potem powrot do pierwszej pary i regolacja z bazowego kodu 2 wyjsc (ATTINY2313) bede probowal sobie cos sklecic stopniowo:) wiem ze masz malo czasu moze ktos inny sie zna i ma troche czasu zeby to zglebic :).

Wiec impulsator z klikiem steruje 3 wejsciami w procku a na 6 wyjsciach beda impulsy pierwsze 2 dzialaja po uruchomieniu jaka bazaowe prawo lewo impulsy po obrocie, po kliknieciu impulsy przechodza na 5 sek na koleje 2 wyjscia i prawo lewo regolacja, w ciagu 5 sek nastepne klikniecie i koleja para wysjc prawo lewo jesli przez 5 sek nie bedzie obrotu to powrot do pierwszej pary wyjsc, albo jesli bedzie w ciagu 3 klik to powrot do 1 pary i tak w kolko :) dobrze by bylo gdyby mozna bylo wterowac dioda RGB znieniajac kolory razem z para wyjsc ale mozna tez dac diode 2 kolorowa ktore zapala sie tylko z 2 i 3 para a przy pierwszej bez LEDow. tedy bedzie wiadomo co jest regolowane. :) pozdrowionka.
OK Mirek :) tylko ze wpisow juz nie moge zedytowac wiec pisze tu:) robie plyteczke tak jak poleciles wiec sie przekonam czy to zadziala czy niei bede dalej kombinowal




Portret użytkownika mirley

Re: Impulsator

Popatrz sobie na projekt http://mirley.firlej.org/cyfrowy_przedwzmacniacz a w zasadzie na program jaki tam napisałem. Obsługa impulsatora, która jest w kodach źródłowych też sie nadaje, zależy od użytego impulsatora. w pętli głównej zaraz po wywołaniu obsługi impulsatora trzeba sprawdzić czy wartośc jest 1 czy -1 i odpowiednio wysterować pinami procka. Albo zrobić poprostu: Toggle portx.y gdy jest -1 a inny port gdy jest +1 itp.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MULTI

;) heh moze po miesiacu

;) heh moze po miesiacu zajarze o co biega bo ostatnio pisalem program w basicu na C64 :) a reszta to dla mnie czarna magia :) sily nieczyste, ognie piekielne i wszystko co nieprawdopodobne :) chyba latwiej bedzie zobaczyc UFO jak napisze ten program ale musza czac od jakiegos pdf :) z progrmowania prockow :) to sie czegos w zyciu naucze :)

Portret użytkownika gosc

Witam. Mam pytanie czy

Witam. Mam pytanie czy mógłbys wyjasnić troche jak dziala obsługa takiego impulsatora? Bo kod mi nic nie da ja pisze w C i z Bascoma cos nie moge sie rozczytac :/

Portret użytkownika mirley

Re: Impulsator

Impulsator to takie ustrojstwo które generuje 2 przebiegi prostokątne przesunięte w fazie o 1/4 okresu. Nie trudno zgadnąć że w zależności w którą stronę kręcisz, albo jeden albo drugi przebieg jest pierwszy (ma pierwszy zbocze narastające). W najprostszym przypadku wystarczy wykryć zbocze narastające lub opadające na jednym z pinów i w tym samym momencie sprawdzić stan na drugim pinie. Jeśli stan ten będzie niski (drugi przebeg jest później i jeszcze zbocze się nie pojawiło) to jest obrót w jedną a jeśli wysoki to w drugą (zbocze narastające już było)

Poprostu trzeba podłączyc i potestować. Jak zaprogramujesz uC ze 100 razy różnymi wersjami programu to sam dojdziesz jak ma to być zrobione

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika multi

czytalem troche helpa z

czytalem troche helpa z bascoma :) i juz mniej wiecje wiem jak sie konfiguruje procek, czy teraz przymierzam sie do zrozumienia reszty mam pytanie odnosnie, timera hodzi o klik w impulsatorze, powiedzmy ze mam juz obroty, i wartosc wyniku ktora moge wykorzystac z 2 pinami ale nie wiem co zrobic zeby to przypisac innym pinom na 5 sekund ? za kazdym kliknieciem pokretlem, trzeba uzyc przerwania czy skoku ? czy jest jakies polecenie ktore to zrobi? potem bede musial jeszcze wykombinowac te ledy bo juz kupilem smd 3 kolory w ktorych jest 6 nozek wiec nie istotne czy bedzie katoda czy anoda wspolna bo nozki sa odzielne do kazdej diody.

Portret użytkownika mirley

Re: Impulsator

Rozwiązanie jest proste. Poprostu skorzystaj z mojej procedury do impulsatora. Na początku programu zrób nową zmienną wpisz do niej wartość zero(będzie to oznaczało który kanał ma generować impulsy). Po kliknięciu przycisku impulsatora zmienna ta powinna zwiększać swoją wartość tak aby po kolejnym kliku były wartość 0,1,2,0,1,2....

Potem sprawdzasz cały czas stan zmiennej Rezultat w mojej procedurze i jeśli wartość różna od 0 to wtedy w zależności czy wartość pierwszej zmiennej jest 0,1,czy 2 wystawisz impuls na innych pinach. Jeszcze oczywiście musisz sprawdzić warunek czy rezultat jest 1 czy -1 i wzależności od teg ustawić stan na odpowiednim pinie.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika multi

hehe jak cie czytam to wydaje

hehe jak cie czytam to wydaje sie bulka z masle :) a jak siade do bascoma to mi sie zrobi ciemno przed aczami kiedys w koncu to sklece :) na chwile obecna wielkie dzieki :) czas nauczyc sie czegos wiece3j w zyciu.

Portret użytkownika multi

siedze 30 min i nie wiele

siedze 30 min i nie wiele rozmie czy w tym czyms jest cokolwiek dobrzez napisane :) hehe

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 16000000

Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11100011 : Portd = &B11111111

Port_led Alias Portb
D1 Alias Portb.1
D2 Alias Portb.0
D3 Alias Portd.6
S1 Alias Pind.4
I1 Alias Pind.3
I2 Alias Pind.2

Config Timer0 = Timer , Prescale = 256
Enable Timer0 : On Timer0 Prztimer0

Enable Interrupts
'********** Konfiguracja uC Koniec ************

'****************** Zmienne *******************
'***********************************************

Dim Dziel As Byte

Dim In1 As Bit , In2 As Bit
Dim Tryb As Byte , Rezultat As Integer
Dim Licz_sw As Byte

Dim Poz_menu As Byte
Dim Led As Byte
'************* Zmienne Koniec ****************

'************** Petla glowna ******************
'***********************************************
Do

Gosub Impulsator
If Rezultat <> 0 Then
Select Case Poz_menu
Case 0: 'glos
If Rezultat = 1 Then Toggle Portb.7
Else
If Rezultat = -1 Then Toggle Portb.6
End If

Case 1: 'bass
If Rezultat = 1 Then Toggle Portb.5
Else
If Rezultat = -1 Then Toggle Portb.4
End If

Case 2: 'trable
If Rezultat = 1 Then Toggle Portb.3
Else
If Rezultat = -1 Then Toggle Portb.2
End If

End Select

Gosub Diody

End If

'***************************** 20ms
If S1 = 0 Then
Incr Licz_sw
If Licz_sw = 3 Then
Incr Poz_menu
If Poz_menu = 3 Then Poz_menu = 0
Gosub Diody
End If

Else
Licz_sw = 0
End If

Loop
End
'************ Petla glowna Koniec **************

'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:
Timer0 = 5
Incr Dziel
If Dziel = 5 Then
Dziel = 0

End If
Return
'******** Przerwanie timer 0 Koniec ************

Diody:
Select Case Poz_menu
Case 0: 'glos
D1 = 1
D2 = 0
D3 = 0
Case 1: 'bass
D1 = 0
D2 = 1
D3 = 0
Case 2: 'trable
D1 = 0
D2 = 0
D3 = 1

End Select

Return

Impulsator:
In1 = I1
In2 = I2
Rezultat = 0
Select Case Tryb
Case 0:
If In1 = 1 And In2 = 1 Then Incr Tryb 'jezeli dwa rozwarte
Case 1:
If In1 = 1 And In2 = 0 Then Tryb = 2
If In1 = 0 And In2 = 1 Then Tryb = 3
Case 2:
If In1 = 0 And In2 = 1 Then
Rezultat = 1
Tryb = 0
End If
Case 3:
If In1 = 1 And In2 = 0 Then
Rezultat = -1
Tryb = 0
End If
End Select
Waitus 100
Return

Portret użytkownika mirley

Re: Impulsator

Po pierwsze jak piszesz program to używaj wcięć, tak jak robie to w swoich programach. Sam zobaczysz że łatwiej sie połapać o co chodzi jeśli wszystkie linijki nie zaczynają się od początku. Problemem jaki widzę to przycisk S1, napisaleś nad nim w komentarzu że wykonuje się co 20ms, ale nie masz tam żadnej flagi aby tak faktycznie mogło działać. Po naciśnięciu zrobi się efekt jakbyś nacisnął przycisk z 1000 razy :). Musisz sobie ustawić flagę w przerwaniu a obsługę przycisku zrobić po if'ie który sprawdza czy flaga jest 1 i ją zeruje. Czas ustawiania flagi obliczysz na podstawie kwarcu = 16000000 i preskalera który ustawiłeś na 256 i jeszcze Timer0 dzieli to przez 250 bo ustawiłeś Timer0=5 za początkową wartość. daje Ci to przerwanie co 16000000/256/250 = 250Hz co odpowiada 4ms. Co 4ms wykonywany jest skok do Prztimer0. Jeśli podzielisz to zmienną Dziel przez 5 to uzyskasz czas 20ms. W efekcie po poleceniu Dziel=0 masz ustawić flagę a sprawdzać ją w pętli głównej

Zamiast poóźnienia 100us w obsłudze impulsatora dałbym to opóźienie w pętli głównej i zamiast Toggle port dałbym set port a po tych 100us spowrotem reset. Bo toggle port może zostawić w stanie wysokim 2 nóżki na raz a przecież nie o to chodzi.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MULTI

He wyciolem z twojego

He wyciolem z twojego programu co bylo do I2C i kombinowalem dalej ale wyciolem za duzo :) posaram sie doczytac wiecej helpa juz dzis troche czytalem ale dzieki za pomoc :) aaa wciecia mam w bascomie tylko zrobilem kopiu wklej i sie tak wkleilo nieporadnie :)

Portret użytkownika multi

'************* Konfiguracja

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 16000000
 
Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11100011 : Portd = &B11111111
 
 
 
Port_led Alias Portb
D1 Alias Portb.1
D2 Alias Portb.0
D3 Alias Portd.6
S1 Alias Pind.4
I1 Alias Pind.3
I2 Alias Pind.2
 
Config Timer0 = Timer , Prescale = 256
Enable Timer0 : On Timer0 Prztimer0
 
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
 
'******************  Zmienne *******************
'***********************************************
Dim Flaga_20ms As Bit
Dim Dziel As Byte
 
 
Dim In1 As Bit , In2 As Bit
Dim Tryb As Byte , Rezultat As Integer
Dim Licz_sw As Byte
 
Dim Poz_menu As Byte
Dim Led As Byte
'*************  Zmienne Koniec  ****************
 
'************ Warunki Poczatkowe ***************
'***********************************************
 
Poz_menu = 0
 
Gosub Diody
'*******  Warunki Poczatkowe Koniec  ***********
 
 
'**************  Petla glowna ******************
'***********************************************
Do
 
Gosub Impulsator
If Rezultat <> 0 Then
  Select Case Poz_menu
    Case 0:
     If Rezultat <> 0 Then                                                'glos
      If Rezultat = 1 Then Set Portb.7
        Else
          If Rezultat = -1 Then Set Portb.6
 
     End If
 
    Case 1:
     If Rezultat <> 0 Then                                                'bass
      If Rezultat = 1 Then Set Portb.5
        Else
          If Rezultat = -1 Then Set Portb.4
 
     End If
 
    Case 2:
     If Rezultat <> 0 Then                                  'trable
      If Rezultat = 1 Then Set Portb.3
        Else
          If Rezultat = -1 Then Set Portb.2
 
     End If
 
  End Select
 
  Waitus 100
  Reset Portb
 
 Gosub Diody
 
 
End If
 
If Flaga_20ms = 1 Then
  Flaga_20ms = 0
 
'***************************** 20ms
  If S1 = 0 Then
    Incr Licz_sw
    If Licz_sw = 3 Then
      Incr Poz_menu
      If Poz_menu = 3 Then Poz_menu = 0
      Gosub Diody
    End If
    If Licz_sw = 250 Then Licz_sw = 0
  End If
 
 
Loop
End
'************ Petla glowna Koniec **************
 
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:
  Timer0 = 5
  Incr Dziel
  If Dziel = 5 Then
    Dziel = 0
    Set Flaga_20ms
  End If
Return
'******** Przerwanie timer 0 Koniec ************
 
 
Diody:
 Select Case Poz_menu
   Case 0:                                                  'glos
      D1 = 1
      D2 = 0
      D3 = 0
   Case 1:                                                  'bass
      D1 = 0
      D2 = 1
      D3 = 0
   Case 2:                                                  'trable
      D1 = 0
      D2 = 0
      D3 = 1
 
 End Select
Return
 
Impulsator:
 In1 = I1
 In2 = I2
 Rezultat = 0
 Select Case Tryb
  Case 0:
   If In1 = 1 And In2 = 1 Then Incr Tryb                    'jezeli dwa rozwarte
  Case 1:
   If In1 = 1 And In2 = 0 Then Tryb = 2
   If In1 = 0 And In2 = 1 Then Tryb = 3
  Case 2:
   If In1 = 0 And In2 = 1 Then
     Rezultat = 1
     Tryb = 0
   End If
  Case 3:
   If In1 = 1 And In2 = 0 Then
     Rezultat = -1
     Tryb = 0
   End If
 End Select
Return

Chyba mi sie mozg zaraz ugotuje :) od tego sprawdzania beldow i instrkcji w helpie :) i zastanawiania sie czy tak moze byc czy nie :) jak jtos oprocz mirka ma ochote a zwlaszcza czas to przejzec to bylo by fajnie bo dla mirka to bolka z maslem :) ale niemozna go ciagle tak nekac :) i meczyc :) jak sie jest tumanem i pierwszy raz pisze kod :)
sorki raczej zmienia kod :) czepial mi sie end if w petli glownej wiec powstawialem warunek ze rezultat msi byc rozny od 0 i przestal sie czepiac ale mam teraz takie bledy:
Error: 7 Line: 0 IF THEN expected [160] ,in File :
Error: 350 Line: 0 Interrupt needs return ,in File :
Error: 123 Line: 0 END IF expected ,in File :

Ale narobilem bajzlu :) bo niebardzo jeszcze rozumie to wszytko :) cos jakby gdzies dzwonilo tylko niewiadomo w ktorym kosciele :)
p.s mam nadzieje ze teraz dobrze wkleilem kod ;)

Portret użytkownika mirley

Re: Impulsator

Masz niepozamykane if'y a poza tym po co drugi raz w case'ie sprawdzasz rezultat <> 0, przecież wiadomo że jest <>0 bo innaczej case wogóle się nie zrobi.

If Rezultat <> 0 Then
  Select Case Poz_menu
    Case 0: 'glos                                            
      If Rezultat = 1 Then Set Portb.7 Else Set Portb.6 
    Case 1: 'bass
      If Rezultat = 1 Then Set Portb.5 Else Set Portb.4
    Case 2:  'trable
      If Rezultat = 1 Then Set Portb.3 Else Set Portb.2
  End Select
 
  Waitus 100
  Reset Portb
  Gosub Diody
End If

Pamiętaj jeśli piszesz if'a w jednej linijce i zarówno po nim jak po else jest jedno polecenie to nie trzeba end if. Jeśli natomiast po if...then dasz enter i napiszec coś w drugiej linijce lub kilka poleceń to wtedy musisz dać jeszcze raz enter i dopisać End if. Tak samo masz przy Flaga_20ms, if jest potem zerowanie flagi, obsługa przycisku ale end if'a już nie ma po obsłudze przycisku.

Generalnie każdy if powinien mieć end if, chyba że jest napisany w jednej linijce. polecenie Else jest opcjonalne i nie musi go być jeśli nie jest potrzenbne

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika multi

upss ! dzieki :) heh dobrze

upss ! dzieki :) heh dobrze wiedziec :), dzis w nocy nie moglem spac :) i przyszlo mi do glowy ze nawet jak plytka bedzie gotowa to moge podwoic ilosc sterowanych klawiszy rchamiajac num look wowczas te same klawisze maja inne znaki, warnek tylko jest jeden msze pozostawic jeden pin w prock z mikrostykiem ktorego narazie nie bede uzywac :) dzieki Mirek :)

----
:) HE WCZORAJ UDALO SIE SKOMPILOWAC KOD, W SUMIE TO DZIEKI TOBIE :), mamtaraz pytanie czy ten symulator nadaje sie do przetestowania ukladziku czy dowiem sie czy to dziala dopiero po zmontowaniu plytki, bo wczoraj probowalem symulatora i pracuje nie ustannie ale jak wybralem wyswietlacz tam sa takie kontrolki czerwone i zielone i jak sie gasilo te na ktorych sa piny do pimulsatora to nie dzialalo to tak jak ma dzialac :) i nie jestem pewien czy tak mozna sprawdzic, chyba ze chcesz przejzec caly kod na spokojnie jak bedziesz mial troche czasu to wkleje go a ja sie zabiore za zrobienie plytki, sie rozpedzilem w tym nocnym mysleniu i zamiast mikrostyka mialo byc wyjscie sterujace klawiszem num look tylko wlaczanie i wylaczanie tego klawiasza sterowal by impuls po kliknieciu ciaglym przez 3 sekundy:) pozostale piny dzialaly by identycznie bez zmian wiec mysle ze mozna by to kiedy dopisac a ja sobie moge na plytce zrobic sciezki i zostawic puste pola lutownicze wowczas impulsatorem sterowal bym 12 klawiszy w 2 trbach 1 obslugujacy audio a 2 oslugujacy przewijania menu a sygnalizacja 2 trybu mogla by sie odbywac przez miganie podswietlania zamiast swiecenia ciaglego wtedy mozna by albo wysterowac anode wspolna do gaszenie i zapalania ledow albo dopisac do ledow pulsowanie chyba prosciej bylo by wysterowac anoda to miganie bo reszta kodu byla by taka sama jak teraz. Apytanie moje czy mozna sprawdzic dzialanie programu w bascomie czy dowiem sie ze to nie dziala do pstawieniu w plyteczke :) bo mam wrazenie ze nie dziala :)

Portret użytkownika mirley

Re: Impulsator

Nie sprawdzaj w symulatorze bo nie wiem co on pokazuje.... Jeszcze nigdy go nie używałem. Zrób płytkę i wtedy będziesz zmieniał program :) Odnośnie sterowania anody to nie jest dobry pomysł, po co dublować potrzebne wyprowadzenia, generalna zasada jest: Program jest dla sprzętu a nie sprzęt do programu. Najpierw robisz jak najprostszy schemat, a potem sie bawisz jak to oprogramować

Ps. Zaloguj się jak piszesz i nie dodawaj wpisu pod wpisem. Opcja edytuj jest po zalogowaniu (patrz wyżej - żebym nie musiał tego zawsze poprawiać)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MULTIMEN

Czesc Mirek ! nie mam opcji

Czesc Mirek ! nie mam opcji edycja w zadnej odpowiedzi a jestem zalogowany wiec napisze tu jak chcesz usunac cokolwiek w tych odpowiedziach to usun, niemam nic przeciwko :) testuje ten uklad i bede musial posiedziec przy nim bo zrobilem prosta plytke transoptory wyjolem z podstawek i wlozylem ledy po wlaczeniu zapala mi sie led sygnalizacji ale po nacisnieciu pokretla zapalaja sie wszytkie 3 na czas nacisniecia a po zwolnieniu przelacza na kolejego leda i nastepnego ale nie wraca samoczynnie po 5 sekundach do 1 (GLOS) tylko pozostaje na regolacji tej ktora wybralem naciskajac a ma wracac tak zalozylem ze bedzie dzialac :) to pierwsza sprawa, przelacznie nie odbywa sie w sekwencji 0,1,2,0,1,2,0,1,2..... tylko 0,1,2,1,0,1,2,1,0... a czesto niezalapie i przelaczy przypadkowo. 2 to to ze wszystkie ledy transoptorow swieca i na zadnym nie ma i impulsow a powinno byc tak ze sa wylaczone a mrugniecie pojawia sie na jednym z wyjsc po obrocie w prawo a na drugim po obrocie w lewo a na kolejnych po kliknieciu, pozatym musi mrugnac po kazdym impulsie z impulsatora jezlei pokrece szybko i bedzie jeden dluzszy impuls to bedzie ok bo klawiatura odbierze to jako dlugie nacisniecie i wygeneruje sama klikniecia co 250ms poglasniajac szybko zamiast stopniowo. :) jak masz minutke dla mnie to choc napisz gdzie mam wprowadzic zmiane i moze cos dopisac by to dzialalo :) jak bedziesz wolal to co skompilowalem do zerkniecia to ci moge podeslac. Teraz jestem w robocie i nie mam casu sie przyjzec ale pozniej bede sobie maglowal twoje wskazowki az wtluke to do glowy :) pozdrowionka i milej niedzieli.

-

MULTI

Portret użytkownika mirley

Re: Impulsator

Ja zrobiłbym to tak:

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "m162def.dat"
'$regfile = "attiny2313.dat"
 
$crystal = 16000000
 
Config Porta = &B11111111 : Porta = &B11111111
Config Portb = &B11111111 : Portb = &B11111111
Config Portc = &B11111111 : Portc = &B11111111
Config Portd = &B00000000 : Portd = &B11111111
Config Porte = &B11111111 : Porte = &B11111111
 
D1 Alias Porte.2
D2 Alias Porte.1
D3 Alias Porte.0
S1 Alias Pind.7
I1 Alias Pind.1
I2 Alias Pind.0
 
Config Timer0 = Timer , Prescale = 256
Enable Timer0 : On Timer0 Prztimer0
 
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
 
'******************  Zmienne *******************
'***********************************************
Dim In1 As Bit , In2 As Bit
Dim Tryb As Byte , Rezultat As Integer
Dim Licz_sw As Byte
Dim Poz_menu As Byte
Dim Impuls As Byte , Stan_wyjsc As Byte
Dim D As Byte , F_100ms As Bit , F_4ms As Bit
Dim Autopowrot As Byte
 
'*************  Zmienne Koniec  ****************
 
'**************  Petla glowna ******************
'***********************************************
Do
Gosub Impulsator
 
If Rezultat <> 0 Then
  Select Case Poz_menu
    Case 0: 'glos
      If Rezultat = 1 Then Portc = &B11111110 Else Portc = &B11111101
    Case 1: 'bass
      If Rezultat = 1 Then Portc = &B11111011 Else Portc = &B11110111
    Case 2:  'trable
      If Rezultat = 1 Then Portc = &B11101111 Else Portc = &B11011111
  End Select
  Autopowrot = 50                                           'po 5 sekundach jeśli nic nie kręcone to powrot
End If
 
If F_100ms = 1 Then
  F_100ms = 0
 
  Gosub Diody
 
  If Autopowrot > 0 Then
      Decr Autopowrot
      If Autopowrot = 0 Then
        Poz_menu = 0
      End If
  End If
 
End If
 
If F_4ms = 1 Then
  F_4ms = 0
 
  If Pinc <> 255 And Stan_wyjsc = Pinc Then
    Incr Impuls
    If Impuls = 25 Then
    Impuls = 0
    Portc = 255
    End If
  Else
    Stan_wyjsc = Pinc
    Impuls = 0
  End If
 
  If S1 = 0 Then
    Incr Licz_sw
    If Licz_sw = 225 Then
      Incr Poz_menu
      If Poz_menu = 3 Then Poz_menu = 0
      Autopowrot = 50                                       'po 5 sekundach jeśli nic nie kręcone to powrot
    End If
  Else
    Licz_sw = 200
  End If
End If
 
Loop
End
'************ Petla glowna Koniec **************
 
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:
  Timer0 = 5
  Incr D
  Set F_4ms
  If D = 25 Then
    D = 0
    'co 100ms
    Set F_100ms
  End If
Return
'******** Przerwanie timer 0 Koniec ************
 
Impulsator:
 In1 = I1
 In2 = I2
 Rezultat = 0
 Select Case Tryb
  Case 0:
   If In1 = 1 And In2 = 1 Then Incr Tryb                    'jezeli dwa rozwarte
  Case 1:
   If In1 = 1 And In2 = 0 Then Tryb = 2
   If In1 = 0 And In2 = 1 Then Tryb = 3
  Case 2:
   If In1 = 0 And In2 = 1 Then
     Rezultat = 1
     Tryb = 0
   End If
  Case 3:
   If In1 = 1 And In2 = 0 Then
     Rezultat = -1
     Tryb = 0
   End If
 End Select
 Waitus 100
Return
 
Diody:
 Select Case Poz_menu
   Case 0:                                                  'glos
      D1 = 1
      D2 = 0
      D3 = 0
   Case 1:                                                  'bass
      D1 = 0
      D2 = 1
      D3 = 0
   Case 2:                                                  'trable
      D1 = 0
      D2 = 0
      D3 = 1
 End Select
Return

Zmień sobie tylko typ mikrokontrolera i nazwy portów, a będzie działać :) Odnośnie sprawy z edycją postów to dasz rady edytować tylko te które pisałeś będąc zalogowanym, nie ma znaczenia że tak samo się nazwałeś :)

-------

Jeszcze odnośnie tego impulsu fałszywego po kręceniu powolnym to można pokombinować z czasem opóźnienie w obsłudze impulsatora :)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika mirley

Re: Impulsator

Napisane przez MULTIMEN:
";) he ok sprobuje zmienic weitus na 150 i potem na 200, plyteczka wymieniona robnolem sie z transoptorami ale wygilem nozki na droga strone i dziala :) teraz sie problem zrobil wiekszy, bo sie gdzies zapodziala matryca foliowa z orginalnej klawiaturki i nie wiem na ktorych z jedenastu lini sa przyciski :) cos ala matryca z pilota do TV zwarcie odpowiednich pinow w lini poziomej i pionowej daje okreslony kod, musze to znalezc albo kartke na ktorej mialem rozpiske tej matrycy :) jak nie znajde bede musial podlaczyc do USB i zwierajac zakonczenia tasmy w wordpadzie, sprawdze czy wyskocza znaki pewnie zjamie ni to z pol dnia ale coz zrobic :)"

Ps. nie wolno zmieniać postów na które była już odpowiedź!

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MULTIMEN

Mirek widzialem na necie

Mirek widzialem na necie jeden projekcik z impulsatorem i tam byly podpiete 2 kondensatorki 20nF do wyprowadzen impulsatora i do masy myslisz ze to moze pomoc w tych falszywych impulsach o przeciwnym kierunku przy kreceniu w jedna strone ?

-

MULTI

Portret użytkownika mirley

Re: Impulsator

Teoretycznie spowolni to zbocza sygnału ale jaki da efekt przy współpracy z mikrokontrolerem to nie wiem. Czemu pytasz.... poprostu podłącz i zobaczysz efekty.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MULTIMEN

:) no ok zapytalem bo juz mam

:) no ok zapytalem bo juz mam plytke zapakowana i zabezpieczona przed zwiarciem ale wlutuje je przy samym impulsatorze :) tam jeszcze moge lutowac. Jak chcesz zobaczyc filmik z pracy sterownika to tu jest krotki http://img190.imageshack.us/i/p1070869.mp4/

-

MULTI

Portret użytkownika mirley

Re: Impulsator

Wygląda to całkiem fajnie, co jest pod pokrętłem impulsatora że tak fajnie widać wokół niego kolor z diody?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MULTIMEN

dalem 2 diody rgb smd te 5mm

dalem 2 diody rgb smd te 5mm srednicy a nie zgadniesz co jest na gorze :) hehe to szyjka z butelki po wodzie minerlanej ma odpowiedni ksztalt po odcieciu gwintu ma kolnierz u gory wystarczylo ja odpowiednio uformowac i przeszlifowac drobnym papierem sciernym by byla lekko matowa :) aaa mialem pod reka 2 kondensatorki 47nF wlutowalem je na nozki impulsator i dziala lepiej :) teraz zdarzy sie falszywy impuls raz na jakis czas ale to chyba normalne nie ma rzeczy idealnych :)

-

MULTI

Portret użytkownika mirley

Re: Impulsator

No faktycznie szyjka z butelki... wżyciu bym sie nie domyslił, że tak można fajnie rozproszyć światło. A z tymi pojemnościami to sam sobie muszę sprawdzić, trudno jest tak oprogramować żeby nie było błędów. Myśle że jest to wina samego impulsatora

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MULTIMEN

Dlatego ja tez winie wlasnie

Dlatego ja tez winie wlasnie impulsator bo kosztowal 2,60 :) moze jest zle uzlozyskowany i grobne drgniecie podczas krecenia zaklamuje zbocza :) no nic moze jak bede mial lepszy pod reka to go wymienie :) narazie moze byc i tak nie uzywam go non stop raz na jakis czas jak tylko gdzies jade, :) kieds z szyjek turkusowych robilem sobie nakladki pozycyjnych do malacza doslowanie niepowtarzalny kolor :) ale to bylo dawno temu wiec pomyslalem skoro nie ma niczego innego :) niezastanawialem sie dlugo :) i ciachnolem butelke a poasowala wielkoscia do pokretla, pomyslalem ze mozna by tez dac kilkanascie diodek i wtedy pokretlo by sie zaswiecalo stopniowo krecac od lewej do prawej pierscien swiecil by coraz wiekszy im bardziej bylo by pokrecone :) a przy basach czy sopranach moglo by sie od polowy w prawo lub w lewo rozswietlac.

----------

Wyswietlacz mnie denerwuje :) tzn on jest ok wszytsko dziala jak nalezy w nim, ale nie z tym co trzeba odkad uzyli netFramwork a 2.0 VFD przestal wyswietlac w tarszej wersji fronteda ktory jest XML wyswietlacz dzialal idelanie ale jak zrobili nowa wersje cos spaprali, a Fixy sa nie do zdobycia, narazie uzywam Smartie do wyswietlania ale ona plugin do Winampa, a nie chce uzywac zewnetrznych aplikacji do odtwarzania muzyki :) skoro dziala wszytskow frontedzie CF, poza tym on wyswietla inne rzeczy w zaleznosci co masz uruchomione, jak wlaczysz radio wyswietla czestotliwosc z Smartie to jest niemozliwe, bez pluginow a kto je mapisze ja zreszta nie wiem jak wogole dziala Framwork z czym sie to je :) a tymbardziej jak zmodyfikowac .exe by go poprawic jak juz bym wiedzial co :)

[mirley: Ostatni raz wklejam tekst w poprawne miejsce... dotyczy to wszystkich użytkowników. Ma być zachowana chronologiczna kolejność wypowiedzi jak logika nakazuje (nie mówiąc już o regulaminie)]

-

MULTI

Portret użytkownika mirley

Re: diodki

Chciałbyś dać takich diod na pokrętło kilkanaście, chodzi ci o diody RGB? Odnośnie programów to .exe i tak nie zmodyfikujesz bo jest to nie możliwe, trzeba mieć źródła.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika grizz

Zmodyfikujesz :D Tylko wymaga

Zmodyfikujesz :D Tylko wymaga do dużej wiedzy, kochania systemu szesnastkowego i sporego zaparcia.

Portret użytkownika MULTIMEN

do tego co mam to juz nie,

do tego co mam to juz nie, ale tak jak ty uzyles bargrafu liniowego myslalem zrobic bargraf kolowy :)

Sorki Mirek :) raz dostalem opier.. ze nie edytuje :) potem ze nie odytuje sie juz odpowiedzi :) i nie wiem gdzie pisac :) he

-

MULTI

Portret użytkownika mirley

Re: Odpowiedzi

TO proste... jak napisałeś pytanie i chcesz jeszcze coś więcej dopisać to klikasz w przeglądarce "odśwież" i jeśli jeszcze nikt nie zdążył pod twoim pytaniem nic napisać (żadnej odpowiedzi lub innego pytania) to klikasz edytuj i dopisujesz dalszą część swojego pytania (może być po pauzach tak jak ja to robię). Jeśli natomiast już w międzyczasie ktoś zadał inne pytanie lub napisał odpowiedź pod twoją to nie edytujesz już wcześniejszego swojego wpisu bo jest to wbrew logice i sprawia że cały tekst jest bez sensu (odpowiedzi nie pasują do pytań które zostały zmienione później). Nie wiem jak mam to inaczej tłumaczyć... to ogólna zasada pisania na każdym forum. Po prostu tekst musi stanowić logiczną całość. Pytanie Odpowiedź, Kolejne pytanie -> Odpowiedź.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MULTIMEN

:) he tez tak myslalem

:) he tez tak myslalem nastepnym razem jak ktos mnie ubiegnie w odpowiedzi to sam wytne i przeniose :)

A co do bargrafu kolowego to juz dawno temu widzialem takie przy galce potenziometru :) zamiast impulsatora w jakims starym wzmacniaczu :)moze by trzabylo uzyc jakiegos ukladu swiecacej linijki i na jednym z wyjsc zterowac napieciem rosnaco problem tylko jak wysterowac te polowki :)

-

MULTI

Portret użytkownika mirley

Re: Bargraf

Raczej wypadało by zrobić taki bargraf podłączony do tego układu z impulsatorem, ewentualnie dać większy procesor aby mógł to wysterować i od razu podawać sygnały na te transoptory i jeszcze sterować bargrafem. A może lepiej by było dać diody SMD dwukolorowe albo RGB, tylko najmniejsze jakie są aby dało się je umieścić po okręgu obok potencjometru

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.