Od razu uprzedzam, że jestem początkujący. Programuję w Bascomie. Mam jak narazie zestaw uruchomieniowy ZL3AVR z ATMega32.
Mam kupioną przejściówkę RS232 do USB, ale nie chodzi za dobrze. Chcę wysyłać dane MIDI do komputera na USB, więc chyba lepiej nie korzystać z RS232 bo 31250 baudów to niestandardowa prędkość. Jest więc możliwa emulacja http://cesko.host.sk/IgorPlugUSB/IgorPl ... R)_eng.htm , ale zupełnie nie rozumiem na jakiej zasadzie działa. Rozumiem, że miałbym skonstruować taki układ jak na obrazku http://cesko.host.sk/IgorPlugUSB/images/2313usb.gif oczywiście odpowiednio podpinając piny pod porty. Nie wiem po co tam jest odbiornik IR, zupełnie tego nie rozumiem... Transmisja ma przechodzić przez port USB, więc po co odbiornik IR. Co on ma odbierać?
Rozumiem, że zainstaluję drivery i jego program (Igora) i mogę posterować układem z poziomu komputera. Ale jak cokolwiek wysłać z układu do komputera? To działa w jedną stronę? Jak to obsłużyć przez Bascoma...?
I następny problem. Jak obsłużyć parę UARTów? Wiem, że są układy Atmela mające 2*UART, ale odradzacie tego rozwiązania na korzyść obsługi programowej. Ale jak jej dokonać? Szukałem na forum jakichś fragmentów kodu, ale nic nie znalazłem.
Stworzyłem prosty program. Ustalam na początku crystal na 16000000 i baud na 31250 po czym dałem instrukcję Print bez parametru. Na przerwaniu Int0 (przerwanie wywołuje przycisk), wysyłam komunikat midi.
Zainstalowałem sterownik Rolanda (link z http://www.ckmedia.pl/~jankomuzykant/n/ ... ykant3.htm). Po zainstalowaniu sterownika na dany port COM (mam dwa), nie chodzi wybrany dla sterownika port w terminalu bascoma, ale to raczej normalne. Zainstalowałem program MidiOx monitorujący komunikaty MIDI, ustaliłem mu oczywiście monitorowanie urządzenia Roland. No ale nic nie odbiera :/ Próbowałem wysyłać komunikaty metodą jednego forumowicza
Kod: Zaznacz cały
Dim midiFRAME(3) As Byte
midiFRAME(1) = 177
midiFRAME(2) = 0
midiFRAME(3) = 123
PrintBin midiFRAME(1) 'wyśle wszystkie elementy tablicy po kolei
'kompilator sam zresztą zadba, by wyszystko zostalo wysłane
'sprawdzając czy bufor UART jest gotowy na przyjęcie kolejnych danychLiczę na wyrozumiałość:)