Witam,
Podróbki analizatorów Saleae pracują bezproblemowo nawet pod linuksem. Nie mają też możliwości wyboru typu logiki wejściowej - nie było też wiadomo jakiego analizatora kolega używa.
Co do Tego kodu z pierwszego postu:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tego nie rozumiem - dlaczego robisz jakieś mnożenia oraz dzielisz przez 1023 ?
Jeżeli
pozycja to 10 bitów, a Ty chcesz na 7 bitów, to chyba lepiej jest tak zapisać:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Rozumiem, że zmiana stanu bitu 7 ( linia 1 oraz 5) to informacja, że dana jest gotowa do odczytu z portu ? A co się będzie działo, jeżeli wartość obliczana za pomocą linii 3 będzie miała wartość większą niż 7 bitów ( bo taka prawdopodobnie będzie z tych Twoich operacji matematycznych w kilku przypadkach ). Wówczas analizator odczyta dane nie takie jakich się spodziewasz, uznając je za jakieś stany przejściowe/nieustalone. A ostatecznie nie są to stany przejściowe portów, tylko błędy w kodzie.
Wprowadzając jakieś kodowanie danych w programie, nie zmieniasz właściwości podłączenia analizatora do portu, jak też właściwości samego portu. W takim wypadku analizator również powinien pokazywać te " stany przejściowe".
Ponadto, jeżeli już używasz tego 7 bitu do sygnalizowania danych gotowych do odczytania, to synchronizuj tym bitem również analizator logiczny ( o tym też nie wspomniałeś, jak odczytujesz te dane z portu analizatorem), aby odczytać właściwe stany portów.
To tak na szybko analizowałem, więc mogłem się gdzieś pomylić.