logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega128 jako emulator klawiatury PS/2 – jak wysyłać sygnały klawiszy do PC?

webserver 28 Lis 2006 14:52 8153 36
  • #31 3376429
    MODI
    Poziom 17  
    Posty: 262
    Pomógł: 21
    Ocena: 16
    Adam_dz napisał:
    dziękuje,
    rownież życzę spokojnych radosnych i wesołych Świąt Bożego Narodzenia.
    Pozdrawiam.
    Adam

    //EDIT:
    Tam sie tylko zapytam..
    jakim cudem pętla nieskonczona generuje zwłokę?
    bo na pewno kilka ms (us) nie trwa takie cos:
    
     wait=3; 
    TCNT0=0;
     while(wait);
    

    chyba ze nie wiem jak działa while, to mnie douczcie (jesli mozna)..


    pętla while(wait); jest robi "nic" dopóki wait nie jest =0. W przerwaniach(od timera) wait jest zmniajszane co powoduje kazania procesorowi robienia nic przez jakiś czas.

    wait=3;
    TCNT0=0;
    while(wait);

    spowoduje zatrzymanie procesoea na 3 przerwania od timera.
  • #32 3392665
    Adam_dz
    Poziom 12  
    Posty: 61
    Pomógł: 3
    Ocena: 3
    o widzisz.. dzięki :)
    wyłazi moje niedouczenie...
  • #33 3743126
    Rubik
    Poziom 15  
    Posty: 215
    Pomógł: 5
    Ocena: 16
    O ile moge się podłączyć do tematu to pytanie brzmi: jaką sekwencją wysłać reset kompa czyli CTRL-ALT-DEL ? Pozdro RUBIK
    PS
    Czy udało sie komus jednoznaczniezałatwić sprawe odpowiadania komputerowi?
  • #34 3745547
    webserver
    Poziom 12  
    Posty: 90
    Ocena: 1
    Kolego temat juz dano zamkniety jak posklejasz troche ten kod co tu jest to wyjdzie ci dzialajacy ja tak zrobilem i wszystko mi dzialalo w bascom ;) ale to juz stare dzieje ...
  • #35 3745997
    Rubik
    Poziom 15  
    Posty: 215
    Pomógł: 5
    Ocena: 16
    webserver napisał:
    Kolego temat juz dano zamkniety jak posklejasz troche ten kod co tu jest to wyjdzie ci dzialajacy ja tak zrobilem i wszystko mi dzialalo w bascom ;) ale to juz stare dzieje ...


    No to dzięki i papa
  • #36 6908340
    grzesiekskc
    Poziom 12  
    Posty: 72
    Ocena: 2
    Przepraszam że odgrzewam tak stary temat jednak spędziłem przy tym prawie całą nockę kombinowałem jak mogłem jednak nie podołałem zadaniu.. :(
    Korzystając z tego kodu:

    
    $regfile = "m16def.dat"
    $crystal = 400000
    
    Declare Sub Wyslij(byval Bajt As Byte)
    Dim N As Byte
    N = 0
    Dim Parz As Byte
    Parz = 0
    Dim B As Bit
    Set Portd.0
    Set Portd.1
    Do
    Call Wyslij(&H1c)                                           'przyklad
    Loop
    End
    
    
    Sub Wyslij(byval Bajt As Byte)
    
    Reset                       'wysylamy bit startu
    Waitus 20
    Reset Portd.0
    
    For N = 0 To 7   'w petli wysylamy kolejne bity bajtu
    Portd.1 = Bajt.n
    Parz = Parz + Bajt.n
    Set Portd.0
    Waitus 20
    Reset Portd.0
    Waitus 20
    Next N
    
    Set Portd.0
    Parz = Parz Mod 2
    Portd.1 = Not Parz.0
    Waitus 20
    Reset Portd.0
    Waitus 20
    
    Set Portd.1               'i bit stopu
    Set Portd.0
    Waitus 20
    Reset Portd.0
    Waitus 20
    Set Portd.0
    Waitus 40             'dla bezpieczenstwa :D
    End Sub


    Który oczywiście był parę postów wcześniej, używając rezystorów podciągających zmieniając taktowanie zegara wartości "waitus" na większe np.23 to jednak nadal po podłączeniu do komputera w notatniku nie widzę żadnego znaku pomimo tego że nie piszczy itp (chodź to może byś winą wyłączenia bipera w biosie czy coś takiego) Całość tego układu mam zmontowane na płytce uruchomieniowej AVR więc nic nie ma prawa być źle dolutowane czy coś.

    Proszę o pomoc i jakąś rade... czy to wina kodu czy też nieumiejętnej obsługi.
  • #37 7092958
    PiotrLotnik
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 2
    No właśnie
    Ja też chciałbym ożywić ten temat.
    Chce podłączyć ATMETA 32 do PC tak, żeby mógł wysyłać dowolne klawisze jak klawiatura i jednocześnie mieć podłączoną standardową klawiature.

    Jaka jest wasza opinia na ten tepat? Czy można podłączyć je jednocześnie czy lepiej podłączyć klawiature do ATMEGI i dalej przesyłać na PC odebrany znak.

    ATMEGA====PC====KLAWIATURA
    czy
    KLAWIATURA ===ATMEGA=====PC
    Pozdrawiam
    Piotr

    PS. Można prosić o jakiś działający przykładowy program w BASCOMie?

Podsumowanie tematu

✨ Dyskusja dotyczy wykorzystania mikrokontrolera Atmega128 (oraz innych AVR, np. Atmega8) jako emulatora klawiatury PS/2, który wysyła do komputera sygnały odpowiadające naciśnięciom klawiszy. Poruszono kwestie implementacji protokołu PS/2, w tym generowania sygnałów zegara i danych, obsługi kodów skanowania (scan codes) oraz bitów parzystości. Użytkownicy dzielili się przykładami kodów w BASCOMie i C, omawiając problemy z kompatybilnością asemblera 8051 z AVR, konieczność stosowania rezystorów podciągających, oraz znaczenie prawidłowego taktowania (częstotliwości kwarcu) dla poprawnej transmisji. Wskazano, że komputer podczas uruchamiania wysyła komendę echo (0xEE) do klawiatury, a brak odpowiedzi powoduje sygnał błędu (piszczenie). Omówiono także problem symultanicznego podłączenia standardowej klawiatury i mikrokontrolera do linii PS/2, sugerując stosowanie tranzystorów do separacji sygnałów i unikanie kolizji transmisji. Wskazano na potrzebę implementacji odbioru danych z komputera (np. komendy RESEND 0xFE) dla pełnej emulacji. Podano linki do dokumentacji protokołu PS/2 oraz przykładowych implementacji. Dyskusja zawierała także pytania o wysyłanie kombinacji klawiszy (np. CTRL-ALT-DEL) oraz prośby o działające przykłady programów w BASCOMie.
Wygenerowane przez model językowy.
REKLAMA