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

[Bas] Prosty oscyloskop na M32, pytania (foto)

jacynka84 09 Sie 2010 20:52 6012 30
  • #1 8381876
    jacynka84
    Poziom 26  
    Otóż zrobiłem sobie na M32 w Bas na Lcd 128x240 prosty oscyloskop, taki jak widziałem na innych stronach , dobrze pokazuje kwadrat do ok 4Khz, co jest normalne dla M32.
    Uwaga, fragment kodu z zapełnieniem tablicy i oscylogramem jest napisany przez kogoś z elektrody, nie pamiętam kogo, Ja go sobie lekko przerobiłem i dopasowałem.

    oto kod:
    
     If B4 = 1 Then
                   If Key = 26 Then : Ba = 1 : End If           'Wybór preskalera adc
                   If Key = 27 Then : Bb = 1 : End If           '1,2,3,4
                   If Key = 28 Then : Bc = 1 : End If
                   If Key = 29 Then : Bd = 1 : End If
                      If Ba = 1 Then
                      Config Adc = Single , Prescaler = Auto , Reference = Avcc
                      Locate 3 , 30 : Lcd "Prsc=Auto"
                      End If
                      If Bb = 1 Then
                      Config Adc = Single , Prescaler = 32 , Reference = Avcc
                      Locate 3 , 30 : Lcd "Prsc=32"
                      End If
                      If Bc = 1 Then
                      Config Adc = Single , Prescaler = 64 , Reference = Avcc
                      Locate 3 , 30 : Lcd "Prsc=64"
                      End If
                      If Bd = 1 Then
                      Config Adc = Single , Prescaler = 128 , Reference = Avcc
                      Locate 3 , 30 : Lcd "Prsc=128"
                      End If
    
    
                      If Key = 4 Then : Ba = 0 : Bb = 0 : Bc = 0 : Bd = 0 : End If       'kasacja ustawienia presc
    
               Vt = Nap1 * 0.0045                'dopasować, obliczanie bitów>woltów
               Vtx = Fusing(vt , "##.##")
               Locate 2 , 30 : Lcd "Vol " ; Vtx
               Line(0 , 118) -(160 , 118) , 1
                Line(161 , 06) -(161 , 118) , 1
    
               Nap1 = Getadc(1)        ' wyzwalanie napięciem (działa raczej jak "pauza")
               If Nap1 > 110 Then
               For C = 0 To 160                               'zapełnianie tablicy
               Nap1 = Getadc(1)
               Nap1 = Nap1 / 5
               Seg(c) = 118 - Nap1                           'dopasowanie do LCD
               Next
               End If
    
               For C = 0 To 160                                 'odtwarzanie
               Y1 = Seg(c)
               If C = 0 Then
               Y0 = Seg(c)
               Else
               Y0 = Seg(c - 1)
               End If
               X1 = C
               If C = 0 Then
               X0 = 0
               Else
               X0 = C - 1
               End If
    
               Line(x0 , Y0) -(c , Y1) , 1                  'rysuj oscylogram
               Next
               Wait 1
               If Key = 9 Then : Toggle B4 : End If             'wyłącznik
             End If
    


    Działa bardzo dobrze, i tu moje pytanie - jak zrobić funkcję która by działała jak wyzwalanie zboczem rosnącym ??
    I jak tu obliczać częstotliwość sygnału jeśli jest stały?
    Jak widzicie w kodzie już jest coś podobnego, ale bardziej działa jak Pauza niż wyzwalanie.
    Na preskalerze = 64 bardzo dobrze widać sygnał PPM z aparatury RC, po to zresztą zrobiłem ten niby-oscyloskop.

    [Bas] Prosty oscyloskop na M32, pytania (foto) [Bas] Prosty oscyloskop na M32, pytania (foto)
    Na pierwszym widać oscylogram gdy 2 ostatnie kanały są na minimum, na drugim 2 ostatnie na max.
    Pozdrawiam i czekam na porady.

    Dodano po 3 [godziny] 24 [minuty]:

    Mam jeszcze inne zagadnienie:
    Otóż interesuję się Xmega128A1 , i one są na 3.6V max, czy można do niej zwyczajnie podłączyć 5Voltowy RAM 62256, lub inne jak LCD które działają na 5V?? Czy Xmega zniesie logiczne 5V z ramu, i czy ten LCD załapie 3.6V z xmegi?
    Czy trzeba jakieś konwertery czy ram zadziała na tym niższym napięciu?
    Interesuję się Xmegą bo w nocie wyczytałem że wyrabia 2msps, i mogę kupić do niej programator za 50zł a nie 180...
  • Pomocny post
    #2 8382921
    nsvinc
    Poziom 35  
    XMega chodzi na 3.3V, a nie 3.6V .
    To jest roznica. Nie sugeruj sie w ten sposob parametrami z serii
    "absolute maximum ratings". To ze krzem wytrzyma 3.6, to nie
    znaczy ze bedzie sie dobrze czul pracujac przy takim napieciu!

    Nie wiadomo, czy twoj wyswietlacz zrozumie stany logiczne z procesora.
    Najpewniej nie, bo dla 5V standardem widzenia logicznej jedynki to
    napiecia 0.7Vcc..Vcc, i jak w morde strzelil wychodzi ze jedynke zobaczy
    od 3.5V. Ale moznaby wiecej wywnioskowac, gdybys podal oznaczenie
    wyswietlacza, bo niestety, wrozka ma urlop...

    xmega nie zniesie najprawdopodobnie 5V, a przynajmniej nie na
    wiekszosci pinow. Piny wytrzymujace 5V sa oznaczane w ukladach
    LVTTL jako "5V tolerant". A nawet gdybys podlaczyl ta zewn. pamiec
    pod piny wytrzymujace 5V, to co z tego, ze procesor to wytrzyma,
    skoro pamiec nie zrozumie poziomow napiec LVTTL, czyli 3.3V

    Jesli chcesz sie tak bawic, to:
    1) kup pamiec idaca z 3.3V. Tego na rynku jest potezna ilosc,
    pierwszy z brzegu IS61LV25616 (ISSI, 256k x16, ekstremalnie
    duza pamiec jak na maly uC :] ), poszukaj w TME, maja sporo...

    2) Przywitaj sie z datasheetem do wyswietlacza. Mozesz mu nawet reke
    podac. Jesli wyczytasz, ze wyswietlacz faktycznie rozumie jedynke od
    0.7Vcc, to musisz stosowac translatory poziomow napiec, chodzby
    bufory, 74LVCxxxx/74LVXxxxx, CMOSy ktore mozna zasilic z 5V, a
    stany LVTTL zrozumieja bez problemow.
    Twoja decyzja, czy te bufory zrobisz jednokierunkowe (tylko zapis
    do wyswietlacza) czy dwu (zapis i odczyt). To jest po prostu kwestia
    doboru scalakow i poskladania ich w logiczna calosc...

    Do jakiego procka programator kosztuje ci 180zł? Chyba mierzysz w za
    wysoka polke cenowa.
    Chociazby do ARMow jest JTAG Freddiego Chopina (uzyj szukaj)
    ktory on chyba masowo juz produkuje :] Koszt <80zł.
    Do dsPICow (np. 40MIPS), sa klony ICD2, i koszt ich wykonania tez
    nie jest przerazajacy <100zł.

    Jesli budujesz oscyloskop, zamow sobie sample z TI w postaci
    ADC majacego 30MSps przy 12bit :] Podlaczasz pod SPI w jakims szybkim
    procku i masz "oscyloskop" o przyzwoitych parametrach ;D ;D

    Proszę poprawić pisownię!
    Robak
  • Pomocny post
    #3 8382954
    rpal
    Poziom 27  
    nsvinc napisał:
    Nie wiadomo, czy twoj wyswietlacz zrozumie stany logiczne z procesora.
    Najpewniej nie, bo dla 5V standardem widzenia logicznej jedynki to
    napiecia 0.7Vcc..Vcc, i jak w morde strzelil wychodzi ze jedynke zobaczy
    od 3.5V. Ale moznaby wiecej wywnioskowac, gdybys podal oznaczenie
    wyswietlacza, bo niestety, wrozka ma urlop...

    wyświetlacz nada się nawet przy zasilaniu procka 3,3 V Ta jedynka logiczna ledwo, ledwo zawiera się mimo wszystko w poziomie napięć TLL bo od 3,5-5V a zakres TTL LV to dla jedynki 2-3,3 V Sprawdzałem i wiem że działa choć margines błedu jest bardzo mały. Natomiast co do ACD to mam wątpliwośći czy przetwornik na SPI będzie się istotnie tak szybko wyrabiał, może z przetwarzaniem tak ale sama transmisja jest wolna więc dostęp równoległy do niego jest moim zdaniem niezbędny. Poza tym tym ten oscyloskop to mozna zrobić prościej i zdecydowanie o szybszej transmisji kiedy wynik przetwarzania z równoległego ACD będzie wystawiał dane wprost na wejście pamięci a uP będzie potrzebny tylko sterowania tym całym gipsem i obrazowania danych na LCD. Wówczas moc uP nie jest potrzebna na niepotrzebny transfer danych a tylko sterowanie.
  • #4 8383348
    nsvinc
    Poziom 35  
    ->rpal

    Nope :] Uzycie DMA i szybkiego (np. z STM32 :):) ) SPI daje
    dobry transfer na poziomie 36Mbit. Przy 8 bitach przetwornika
    najoptymistyczniejsza wersja to 4.5MSps ktore da sie przepchnac...

    W oscyloskopach stosuje sie FIFO, nie "pamiec". Wyobraz sobie
    budowe maszyny stanu obslugujaca pamiec (linie WR,CS,adres i jego
    inkrementacja...) na prostych bramkach - masakra. Lepiej
    zamowic sampla z TI :] 128k sampli x 9bit SN74V293. Do tego
    generator kwarcowy 100MHz (sa takie :D) i juz :] Wtedy stosujac
    rownolegly odpowiednio szybki ADC mozna bujac kolo 150Msps :]

    Co do obslugi konwencjonalnej pamieci - Wyobraz sobie
    wymagany zegar tego procesora, taki, aby co kilka ns wyrabial sie
    z calym cyklem zapisu...
    Rowniez mozna marzyc o SRAMie, ktory ma czas dostepu <10ns...

    Sa opcje zastosowania SDRAMow, i w zapis sampli w trybie burst.
    No wtedy przy np. QDR mozna osiagac sobie kilka GSps...:)

    Proszę poprawić pisownię!
    Robak
  • #5 8383792
    jacynka84
    Poziom 26  
    Ale Panowie ja nie potrzebuję tak kosmicznych 30msps...
    Jestem amatorem, gdyby widział kwadraty do 200-300khz to wystarczy dlatego chcę sobie uprościć sprawę wew. ADC xmegi, w której to właśnie wyczytałem że ma 2msps.
    A te 3.6V to pomyłka tak czy tak miałem na myśli low voltage.
    Ponadto zastanawiam się czy w ogóle stosować ram do tej xmegi, i czy jest jakiś ram na rynku który pasuje do uP i 32Mhz??
    Mam ponadto kostkę ADC1034, i MAX166, ale one mają pasmo jeden z 15Khz, drugi 50Khz, a to troszkę mało., bo gdybym miał jako oddzielną kość ADC z ADC 1-2msps, to w ogóle nie musiałbym stosować xmegi i gimnastykować się z 3.3V.

    A co do tej funkcji wyzwalania zboczem to można tak:
    Jest zero a potem powyżej , wtedy oznaczamy to jako start dla ADC i zebrania danych, jeszcze muszę tylko to rozpisać.
  • #6 8383813
    nsvinc
    Poziom 35  
    Nie wiedzialem, ze 30milisampli na sekunde to jest "strasznie duzo" :D:D:D

    Co do SRAM - nawet podalem przyklad, poszukaj w sklepach!

    Kosc ADC z ADC?...:]
    Przetwornikow ADC sa miliony na rynku, a tysiace roznych mozna zamowic
    jako sample. Z czym wogolole masz problem?

    Proszę poprawić pisownię!
    Robak
  • #7 8384693
    jacynka84
    Poziom 26  
    Szukałem już, jeszcze się zastanowię nad tym czy w ogóle stosować Xram.
    Wolałbym z allezło, bo np. w tme i nie tylko za przesyłkę będą chcieli 10x więcej niż za ram...
    PS chodziło mi oczywiście o Miliony sampli /s .
    Czy trudno zaimplementować taki zewn. ADC jak AD9220, czy ten MAX166, czytałem noty , ale nie wszystko rozumiem, np różnice zegarów , uP i ADC, nie będzie to przeszkadzać ?
  • #8 8384972
    rpal
    Poziom 27  
    Autor napisał w tytule "prosty" więc nie ma sensu wydziwiać. Tectronix-a i tak nie zbuduje.
  • #9 8385839
    jacynka84
    Poziom 26  
    dokładnie, chociaż przymierzam się do jakiś właśnie ok 1- może 10MSPS.
    Pomyślałem by kupić ten AD9220, a wyjście równoległe 12bit podłączyć do 2x rejestrów przesuwnych, po czym dane wsuwało by się do zmiennej wielkosci 'word' serialem.
    Bas na Atmega128 z 20Mhz się wyrobi na te max kilka MSPS ?

    Mam jeszcze jedno pytanie:
    jak się robi by można było robić oscylogram dwu połówkowy ?
    Chodzi o wzmacniacz op. i detekcję przejścia zero.
  • #10 8386544
    nsvinc
    Poziom 35  
    Ja juz nie chce byc nadgorliwy, ale marka nazywa sie "Tektronix" :]
    A częstotliwość samplowania jeszcze długo nie jest wyznacznikiem
    jakości - są chinskie oscyloskopy z nawet kilka GSps, a jakością pewnym
    markom nie dorównują :)

    Dodano po 2 [minuty]:

    Jesli ATMega osiaga >1DMIPS/MHz to być może się wyrobi. Aczkolwiek
    pisząc kod w bascomie, ktory nie jest mistrzem optymalizacji, to jest spora szansa na to, ze sie jednak nie wyrobi. Proponuję przesiąść się na C (znowu bedzie wojna :P)...

    Dodano po 3 [minuty]:

    ->jacynka84

    Jesli chcesz mierzyć napięcia poniżej "zasilaczowego" GND, to musisz zastosować albo wzmacniacz operacyjny, albo biasować ADC (np. -1.65V .. +1.65V i zastosować prosty translator napięć. Tak czy siak, gdy chcesz
    wejść w ujemne napięcia, musisz zbudować przetwornicę (indukcyjną lub pojemnosciowa) ktora stworzy -Vref...

    Proszę poprawić pisownię!
    Robak
  • #11 8386597
    jacynka84
    Poziom 26  
    "Która stworzy -Vref"
    A czy to nie jest tak że ADC niektóre mają VinA VinB, gdzie do b podaje się ujemne? i wysyła dane ze znacznikiem ze to ujemne?
    Możesz dokładniej wyjaśnić te kwestie ??
  • #12 8386615
    nsvinc
    Poziom 35  
    Wszystko zalezy od samego scalaka. To, ze ADC ma wejscie + i -, nie znaczy
    ze bedzie umiał przeprowadzic konwersję dla "ujemnego" napięcia.

    Jesli roznica miedzy wejsciami + i - bedzie ujemna, to standardowy ADC
    zwróci ci po prostu zero (o ile zniesie potencjaly na wejsciach)...

    przetwornik nie wezmie sobie z kosmosu -Vref aby wiedzial co zwrocic
    gdy IN- > IN+...

    Proszę poprawić pisownię!
    Robak
  • #13 8391195
    atmeg
    Poziom 14  
    jacynka , wszystko OK ale ... jesli juz dajesz swoj temacik to daj kompletny , czyli schemat ,plytka, kod programu , jakies foty , inaczej dla czesci (poczatkujacych) jest on bezwartosciowy a wsumie przecierz jest to dla poczatkujacych :)
  • Pomocny post
    #14 8391332
    Freddy
    Poziom 43  
    Zobacz tutaj https://www.elektroda.pl/rtvforum/topic1723958.html
    opisany jest projekt OpenSource.
  • #15 8391442
    jacynka84
    Poziom 26  
    @atmeg
    Jaki schemat jak ja sobie go robiłem na bieżąco?
    Po za tym co to za schemat, atmega lcd i wzm. op. i parę oporników.
    A kod samego programu jest i fotki działania.

    @Freddy, ciekawy artykuł, wezmę go pod uwagę na pewno.

    Mam teraz zagwostkę.
    Otóż mam ADC AD876 i on wyrabia 20MSPS - czy da się mu obniżyć samplowanie do innej wartości przy
    której M32 czy M128 da się radę wyrobić bez FIFO np. do 8MSPS??
    I skąd mu i jaki dać sygnał zegarowy?
    Jako że ma 10 pinów dla 10 bitów rozdzielczości, to czy można je podłączyć do rejestru przesuwnego 2x 8Bit ?
    Z jaką prędkością je zapisze proc, bo co z tego że mi ADC wystawi na szynę 20MSPS jak ja zgarnę najwyżej 5MS.
    I Jaką funkcje wykorzystać do tego, chyba SPI będzie najszybsze.
    ostrzegam jednak że testy nie prędko przeprowadzę bo klocki dostanę za dwa dni a kiedy zrobię układ to nie wiem,
    na razie zbieram cenne informacje, za które dziękuję.
  • Pomocny post
    #16 8392122
    Mat_91
    Poziom 25  
    Jak chcesz wykorzystać do tego spi skoro to układ wystawia dane na wyjście równolegle? Poza tym zauważ że samplowanie zależy od częstotliwości zegara jakim będziesz taktować układ. Jak podasz mu zegar 20MHz na pin CLK to układ będzie wyrzucał 20Msps, jak dasz mu 1MHz, to będzie 1Msps. Masz to pokazane na prostym wykresie na 3 stronie DS.
  • #17 8392478
    jacynka84
    Poziom 26  
    Cytat:
    Jak podasz mu zegar 20MHz na pin CLK to układ będzie wyrzucał 20Msps, jak dasz mu 1MHz, to będzie 1Msps. Masz to pokazane na prostym wykresie na 3 stronie DS.


    Też to teraz zauważyłem i tak mi się wydawało że ilość sampli jest zależna od zegara, tylko teraz co, zwykły kwarc mam mu podłączyć czy jak?

    Ponadto w Bascom mamy polecenie SPIIN, co służy do wprowadzania danych do a nie tylko z uP.
    Ale jest jeszcze opcja co by podłączyć szynę 10 bit do 10 pinów uP, po czym dodawać dane do siebie, tylko czy przy dodawaniu nie będzie to za wolne?

    Dodano po 1 [godziny]:

    I nie mogę się doczytać po co są aż 4 wejścia 'Reference', z noty wynika że
    można użyć dwóch, ale nie jestem pewny.
    I co będzie na szynie danych jeśli do wejścia AinB podam ujemne napięcie ? Jakie otrzymam dane na szynie , jak ma uP rozróżnić napięcia jeśli nie otrzyma żadnego
    znacznika?
    Oczywiście wiem ze AVR nie da rady w żaden sposób przemielić 20MSampli, ale np szansa na jakieś 2 może 4MS już jest.
  • #18 8400957
    jacynka84
    Poziom 26  
    I nikt mi nie odpowie..?
    Mam jeszcze pytań parę:
    Z jaką prędkością mogą pracować zwykłe piny M32 lub M128 ?

    Przeczytałem że gdy wciśniemy kwarc np 8Mhz, a zadeklarujemy 2Mhz w $Crystal
    to kod wykonuje się 4x szybciej - czy jeśli mamy kwarc 16Mhz i zadeklarujemy 2Mhz, to kod wykonuje się 16x8 - czyli z prędkością jakbyśmy mieli 128Mhz czy jak??
    Tak zrobiłem ale nie widzę żeby działo się coś złego - oczywiście kod rzeczywiście leci 8x szybciej.
  • #19 8401770
    Mat_91
    Poziom 25  
    Z ta częstotliwością to weź przeczytaj jeszcze raz to co napisałeś i przemyśl to... :/ Dobrze to przemyśl.

    A do ADC nie podpinasz kwarcu tylko podajesz mu sygnał zegarowy (np z generatora). To z jaka szybkością możesz "machać" pinami IO powinno byc w DS atmegi, a jak nie ma to sprawdź doświadczalnie.
  • #20 8402303
    jacynka84
    Poziom 26  
    No wiec właśnie myślałem o tek częstotliwości, ale nie czaję o co chodzi więc postanowiłem zapytać, ja to tylko wyczytałem helpie Bas.9.

    Cytat:
    When you specify $CRYSTAL = 1000000 (1 MHz) but in reality, connect a 4 MHz XTAL, you will see that everything will work 4 times as quick.


    Do ADC generator kwarcowy należy podłączyć rozumiem (miałem zamiar 10Mhz podłączyć)?
  • Pomocny post
    #21 8404156
    Mat_91
    Poziom 25  
    I czego tu nie rozumieć? Chodzi o to że jak uC działa Ci z częstotliwością 4MHz, a w programie zadeklarujesz 1MHz, to np opóźnienie 1s będzie równe 250ms, przez co program może nie działać jak należy. Wiec żadne magiczne MHz z nieba Ci nie spadną a uC będzie pracował z taką częstotliwością jaki masz fizyczny kwarc.
  • #22 8404357
    jacynka84
    Poziom 26  
    Wiem że opóźnienia podlegają wtedy podzieleniu w czasie (typu 4s = 1s), ale mi chodzi o to czy to wszystko szybciej działa (dopóki w ogóle działa prawidłowo)?
    Czyli klocek ma tyle MIPS /s ile daje kwarc niezależnie od deklaracji $crystal ?
  • #23 8404394
    nsvinc
    Poziom 35  
    Nie, nie dziala szybciej!

    Zegar procesora to jego bóg - taki jaki bedzie zegar, tak szybko
    wykona sie kod.

    W bascomie oprocz metod pomiaru czasu (wait-y, delay, cokolwiek) lub
    funkcji, ktore je wykorzystują (najpewniej 1wire...) nie bedzie zadnych
    innych zmian w wykonywaniu kodu (no oprocz predkosci zegara...)

    $crystal deklaruje sie wlasnie po to, zeby te funkcje odmierzajace
    czas mialy jakis odnosnik do rzeczywiscie plynacego czasu...

    Million Instructions Per Second

    Wiec wychodzi, ze MIPS po po podzieleniu przez sekundy jest MIPS/sekunde_do_kwadratu. Czyli przyspieszenie wykonywania kodu :D :D
    Mozna je zmierzyć tylko gdy kod się rozpędza. Jak juz jest rozpedzony, to
    ten parametr zawsze wynosi zero, i dlatego nie przeszkadza w wykonywaniu
    kodu. Jesli podczas normalnej pracy ten parametr !=0, to masz gdzies blad
    w rodpedzaniu procesora, i kod nie bedzie dzialac...! :P
    [zartuje :D]
  • #24 8404933
    jacynka84
    Poziom 26  
    Cytat:
    Zegar procesora to jego bóg - taki jaki bedzie zegar, tak szybko
    wykona sie kod.

    I tylko o to mi chodziło, dzięki.

    No i czy tym generatorem kwarcowym bezpośrednio można potraktować tego ADC ?
  • #25 8405264
    nsvinc
    Poziom 35  
    z generatora tak, z rezonatora nie.

    Ale jak bedziesz taktowac ADC z generatora, to skad procesor ma
    wtedy wiedziec gdzie i jakie sa dane? Bedziesz zgadywal gdzie wlasnie plynacy strumien bitow ma LSb sampla? Bez sensu :]

    Podlacz pod SPI, nie pod generator. SPI przeciez generuje zegar.
  • #26 8405372
    jacynka84
    Poziom 26  
    No tak, o tym też nie pomyślałem, jednakże boję się spi w Bas, bo już czytałem że mieli problemy z SPI,
    ale softowym, nie wiem jak z Hardwerowym.
    No i ten adc co mam ma szynę równoległą, nie idzie na spi tego podłączyć, chyba że poprzez wspomniany rejestr przesuwny.
    I tak teraz się zastanawiam, jak mam powiedzieć właśnie kiedy ma sczytać dane z szyny równoległej 10bit, gdy nie będzie wiedział czy dane dotyczą tej próbki czy już następnej.
    Przemyślę to sobie, choć nie pogardzę podpowiedziami.
  • Pomocny post
    #27 8693235
    SP3SWJ
    Poziom 18  
    By odrobinę przyspieszyć zrób inaczej czytanie danych z ADC

    zamiast
    For C = 0 To 160                               'zapełnianie tablicy 
               Nap1 = Getadc(1) 
               Nap1 = Nap1 / 5 
               Seg(c) = 118 - Nap1                           'dopasowanie do LCD 
     Next 



    zrób

     For C = 0 To 160                               'zapełnianie tablicy 
               Seg(c)  = Getadc(1) 
     Next
    
    For C = 0 To 160                               'zapełnianie tablicy 
               Seg(c)= Seg(c)/ 5 
               Seg(c) = 118 - Seg(c)              'dopasowanie do LCD 
     Next


    Najpierw w "krótkiej" pętli szybki odczyt do tabeli bez marnowania czasu na skalowanie, a w następnym kroku skalowanie.

    Można tez zrobić lekki overclocking - zewnętrznym generatorem kwarcowym ( nie kwarcem) nie pamiętam do ilu można podkręcić.... ale chyba 32 MHz gdzieś w necie widziałem kręcili.

    A jak nie to ASM pozostaje ....

    http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/AVROscilo2/AVROscilo2.html
    zobacz na dole link do filmu jak szybko "zasuwa" :-)
  • #28 8700231
    adusia123
    Poziom 11  
    Witam kolego dało by rade wstawić cały kod byłbym bardzo wdzięczny pozdrawiam
  • #29 8700281
    Freddy
    Poziom 43  
    adusia123 napisał:
    Witam kolego dało by rade wstawić cały kod byłbym bardzo wdzięczny pozdrawiam

    Czyżby klawisz "szukaj" przestał Ci działać, albo Google zablokowało dostęp ?
    Kod jest opublikowany, trzeba tylko czytać i poszukać.
  • #30 8700289
    SP3SWJ
    Poziom 18  
    Kod i schematy są na podanym wcześniej linku, a do tego sie poprawnie kompiluja, fizycznie na procku nie sprawdzałem.....
REKLAMA