Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[90c2313][bascom] Obsługa pamięci eeprom procesora.

marcin-k 28 Cze 2008 01:21 2418 14
  • #1 28 Cze 2008 01:21
    marcin-k
    Poziom 15  

    Jak można w 90c2313 lub podobnym Procku zapisywać do wewnętrznego epromu dane chodzi mi o krótki listing wyglądać to ma tak
    Fragment jak to ma działać

    Do
    Treść programu skoki do podprogramów
    ………..
    ………..
    ……….
    O ten fragment na dole proszę o wyjaśnienie ,nakierowanie lub podanie przykładowego kodu
    If……jakiś spełniony warunek
    Zapis do wewnętrznego epromu zmiennej bajtowej
    End if

    If…. jakiś spełniony warunek
    Odczyt tej zmiennej z promu
    End if

    Loop

    Wiem że nie należny zbyt często zmieniać danych w epromie ale te warunki będą spełniane bardzo rzadko głównie mi chodzi oto aby w trakcie pracy programu można było wpisywać i odczytywać te zmienne bajtowe
    Zaznaczam jeszcze raz ,że chodzi mi o wewnętrzną pamięć a nie zewnętrzną


    Poprawiłem tytuł:
    https://www.elektroda.pl/rtvforum/topic1015361.html
    [c_p]

    0 14
  • #2 28 Cze 2008 02:02
    Balu
    Poziom 38  

    No fajnie fajnie... jeśli tylko ten avrek ją ma...to pomoc znajdziesz gdzie?
    W helpie polskiem by ZbeeGin
    W helpie usa na stronie producenta
    W helpie w Twoim kompilatorze.
    Słowo klucz? EEPROM!

    Troszkę... odrobinkę wkładu własnego...
    A kody winny być zaopatrzone w odpowiednie tagi ([code]).

    0
  • #3 28 Cze 2008 02:09
    marcin-k
    Poziom 15  

    w helpie polskim szukałem ale jest to trochę niejasno napisane proszę o wytłumaczenie takie "łopatologiczne"

    0
  • #4 28 Cze 2008 02:14
    Balu
    Poziom 38  

    Przepraszam, ale jesteś albo głupi (bez urazy) albo leniwy.

    Code:

    Przykład:


    Dim B As Byte

    WriteEeprom B , 0     'zapis do pamięci EEPROM
    ReadEeprom B , 0      'odczytanie wartości



    (c) Zbigniew Gibek, 2002-2005   (c) MCS Electronics, 1999-2005

    Text by ZbeeGin

    0
  • #5 28 Cze 2008 02:42
    marcin-k
    Poziom 15  

    próbowałem tego wcześniej ale program nie generuje przy kompilacji pliku z rozszerzeniem eep jak podglądam w symulatorze zawartość to jest pusta jeśli załaduje na początku dane z deklaracją do epromu na początku programu to w symulatorze mogę sobie podejrzeć zawartość a mnie chodzi aby te zmienne były wpisane podczas pracy programu i w razie zaniku nap. Pozostały w pamięci trochę inaczej to robię i wzorowałem się na tym przykładzie z helpa

    Code:

    'Najpierw określimy zmienne
    Dim B As Byte
    Dim Yes As String * 1

    'Składnia Readeeprom oraz Writeeprom:
    'Readeeprom var, address

    'Nowością jest wprowadzenie obsługi odczytywania danych umieszczonych w liniach DATA

    'Ponieważ dane te są umieszczone w osobnym pliku a nie w pamięci kodu,
    'należy się przełączyć na pamięć EEPROM i umieścić je na początku programu
    'Taka jest różnica między normalnymi liniami DATA, które muszą być
    'umieszczone poza wykonywalną częścią programu!!

    'przełączamy się zatem na pamięć EEPROM
    $eeprom
    'określamy etykiety (adresy)
    Label1:
      Data 1 , 2 , 3 , 4 , 5
    Label2:
      Data 10 , 20 , 30 , 40 , 50

    'przełączamy się na pamięć kodu
    $data
    'Cały powyższy fragment w istocie nie generuje kodu.
    'Tworzy on tylko plik z danymi umieszczonymi w pliku .EEP


    'Używamy nowej składni instrukcji
    Readeeprom B , Label1
    Print B                                   'wydrukuje 1
    'Następna instrukcja spowoduje odczyt danych spod następnego adresu
    'Lecz pierwsza instrukcja musi określić skąd odczytać dane – adres startowy

    Readeeprom B
    Print B                                   'wydrukuje 2

    Readeeprom B , Label2
    Print B                                   'wydrukuje 10
    Readeeprom B
    Print B                                   'wydrukuje 20

    'Działa to także podczas zapisu danych:
    'zatrzymamy się jednak na chwilę
    Input "Gotów?" , Yes
    B = 100
    Writeeeprom B , Label1

    B = 101
    Writeeeprom B

    'odczytujemy je z powrotem
    Readeeprom B , Label2
    Print B                                   'wydrukuje 1
    'Następna instrukcja spowoduje odczyt danych spod następnego adresu
    'Lecz pierwsza instrukcja musi określić skąd odczytać dane – adres startowy
    Readeeprom B
    Print B                                   'wydrukuje 2


    (c) by Zbigniew Gibek, 2002-2003 (c) by MCS Electronics, 1999-2003


    Proszę umieszczać listingi programów w znacznikach "Code". [c_p]

    0
  • #6 28 Cze 2008 02:54
    Balu
    Poziom 38  

    I nadszedł czas na typowy opierdziel.
    1) Nie używasz tagów [ code ] pomimo prośby i punktu z regulaminu,
    2) Temat nie w tagach
    3) Nie zawierasz całego Swojego problemu w pytaniu!
    Na Twoje pytanie z pierwszego postu odpowiedź padła w tym co zacytowałem za ZbeeGin.

    Na ostatni post jaką chcesz odpowiedź?
    Gdzie w nim jest pytanie? Syf kompletny, brak jakichkolwiek znaków interpunkcyjnych, dużych liter, piszesz do ludzi nie do syfu... :/

    Odrobinę szacunku do ludzi którzy chcą i mogą Tobie pomóc. Ale ta pomoc nie jest darmowa! Musisz włożyć w zadanie pytanie DUŻO siły, żeby dało się na nie odpowiedzieć w taki sposób, żeby nie robił się tasiemiec.

    Zobacz jak powinny wyglądać pytania w pierwszym poście...
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=1030357
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=1028732
    Kolega Mirekk36 Robi takie pierwsze posty...że jak to mówią Palce lizać:)

    -1
  • #7 28 Cze 2008 03:16
    marcin-k
    Poziom 15  

    Przepraszam ale ja nie jestem tak dobrym pisarzem temat w całości można skasować jeśli moderator tak uważa a ja spróbuje jeszcze się sam trochę z tym pomęczyć i jeszcze pokopać w Internecie może znajdę odpowiedź na moje pytanie temat uważam za zamknięty , jeśli nikt nie może mi tego wytłumaczyć i podać prostego przykładu

    1
  • #8 28 Cze 2008 03:21
    Balu
    Poziom 38  

    Ale chłopie te dwie linijki Cię przerastają?
    Są dokładną odpowiedzą na Twój problem z pierwszego postu.

    Jak masz inny problem OPISZ GO!
    Nikt tu zgadywać nie będzie:/

    Dodano po 1 [minuty]:

    Zdajesz Sobie oczywiście sprawę, że jak używasz writeeprom, to się nie wygeneruje plik EEP:> (do tych komórek które chcesz zapisywać, bo i po co? Skoro ma to się robić "dynamicznie" podczas wykonywania programu).

    -1
  • #9 28 Cze 2008 04:01
    marcin-k
    Poziom 15  

    ale dlaczego w symulatorze podczas wpisywania mam cały czas pustą pamięć

    1
  • #10 28 Cze 2008 05:06
    Press
    Poziom 22  

    A włączyłeś w symulatorze opcję REFRESH VARIABLES? Taki mały przycisk u góry...

    -1
  • #11 29 Cze 2008 19:00
    marcin-k
    Poziom 15  

    oczywiście ,że włączyłem jestem początkującym ale podczas sprawdzania programu w symulatorze zawsze pamiętam o odznaczeniu tej opcji cały czas nie wiem dlaczego mam pustą pamięć w symulatorze w programie jest ok.. ale jak wejdę na zakładkę eeprom w symulatorze to jest pusta

    1
  • #12 02 Lip 2008 01:37
    marcin-k
    Poziom 15  

    daje mój program do odbiornika pilota , który z założenia ma się uczyć pilota sam pracuje to w standarcie rc5 radiowo i pytanie dlaczego to niechce działać tak jak sobie założyłem mianowicie tak
    jeśli zewrzemy PD.0 do masy to pilot ma w pętli rozkładać adres i komene i zapisywać do eepromu . Następnie z eepromu jest to ściągane do innych zmiennych i porównywane z orginałem jeśli ok. to załącza odpowiedni przekaźnik wyjściowy . Niestety nie działa to wogule po włączeniu zapala się dioda D9 , która niepowinna się zapalać jeśli nie wybiorę tej opcji totalna kicha ..
    jęśli ktoś się może wypowiedzieć na temat tego to bardzo proszę
    oto program :


    Code:
    Dim Klawisz_1_com As Byte     'ZMIENNA ZAPISYWANA W EEPROM
    
    Dim Klawisz_1_adr As Byte     'ZMIENNA ZAPISYWANA W EEPROM
    Dim Klawisz_2_com As Byte     'ZMIENNA ZAPISYWANA W EEPROM
    Dim Klawisz_2_adr As Byte     'ZMIENNA ZAPISYWANA W EEPROM
    Dim Klawisz_3_com As Byte     'ZMIENNA ZAPISYWANA W EEPROM
    Dim Klawisz_3_adr As Byte     'ZMIENNA ZAPISYWANA W EEPROM
    Dim Klawisz_4_com As Byte     'ZMIENNA ZAPISYWANA W EEPROM
    Dim Klawisz_4_adr As Byte     'ZMIENNA ZAPISYWANA W EEPROM

    Dim Klaw_1_com As Byte        'ZMIENNA PORÓWNUJĄCA ZAWARTOSC EEPROM Z PILOTEM
    Dim Klaw_1_adr As Byte        'ZMIENNA PORÓWNUJĄCA ZAWARTOSC EEPROM Z PILOTEM
    Dim Klaw_2_com As Byte        'ZMIENNA PORÓWNUJĄCA ZAWARTOSC EEPROM Z PILOTEM
    Dim Klaw_2_adr As Byte        'ZMIENNA PORÓWNUJĄCA ZAWARTOSC EEPROM Z PILOTEM
    Dim Klaw_3_com As Byte        'ZMIENNA PORÓWNUJĄCA ZAWARTOSC EEPROM Z PILOTEM
    Dim Klaw_3_adr As Byte        'ZMIENNA PORÓWNUJĄCA ZAWARTOSC EEPROM Z PILOTEM
    Dim Klaw_4_com As Byte        'ZMIENNA PORÓWNUJĄCA ZAWARTOSC EEPROM Z PILOTEM
    Dim Klaw_4_adr As Byte        'ZMIENNA PORÓWNUJĄCA ZAWARTOSC EEPROM Z PILOTEM

    Dim Address As Byte , Command As Byte

    Dim Licznik As Byte           'ZMIENNA DO LICZNIKA
    Dim Zezwolenie As Bit         'ZMIENNA ZEZWOLENIE
     Licznik = 0                  'WYZERUJ ZMIEENA LICZNIK
     Zezwolenie = 0               'WYZERUJ ZMIEENA Zezwolenie

    $lib "mcsbyte.lbx"


    'ustawiamy linię wejściową dla danych RC5
    Config Portb = Output
    Reset Pinb.7 : Reset Pinb.6 : Reset Pinb.5 : Reset Pinb.4 : Set Pinb.2
    'od pinb.7 do pinb.4 wyjscia przekaznikowe pinb.2 wejscie do programowania(uczenia odbiornika pilota)
    Config Rc5 = Pind.2
    Config Pind.2 = Input




    Config Pind.0 = Input      'DIODA SYGNALIZUJACA PROGRAMOWANIE
    Set Pind.0


    Enable Int0
    On Int0 Odkodoj_sygnal      'JEŚLI WYSTAPI PRZERWANIE SKOCZ DO TEJ ETYKIETY
    Enable Interrupts

    '-----------------SEKWENCJA ZAPISUJACA DO EEPROM--------------------------------
    If Pind.0 = 0 Then            'JESLI WYBRANO OPCJE NAUKI
    Reset Pinb.2                  'ZAPAL DIODE LED
    Wait 1                        'CZEKAJ 1 sek
    Set Pinb.2                    'ZGAS DIODE LED
    Do
    If Licznik = 1 Then           'SPRAWDZ CZY ZMIENNA LICZNIK  MA WARTOSC 1
    If Zezwolenie = 1 Then        'SPRAWDZ CZY JEST ZEZWOLENIE =1
       Zezwolenie = 0             'WYZERUJ ZMIENNA ZEZWOLENIE
    Klawisz_1_com = Command       'WPISZ KOD KOMENDY DO EEPROM
    Writeeeprom Klawisz_1_com , 1 'WYSLIJ WARTOSC DO EEPROM POD ADRES 1
    Klawisz_1_adr = Address       'WPISZ KOD ADRESU DO EEPROM
    Writeeeprom Klawisz_1_adr , 2 'WYSLIJ WARTOSC DO EEPROM POD ADRES 2
    Reset Pinb.2                  'ZAPAL DIODE LED
    Waitms 250                    'CZEKAJ 250 ms
    Set Pinb.2                    'ZGAS DIODE LED
    End If : End If

    If Licznik = 2 Then           'SPRAWDZ CZY ZMIENNA LICZNIK  MA WARTOSC 2
    If Zezwolenie = 1 Then        'SPRAWDZ CZY JEST ZEZWOLENIE =1
       Zezwolenie = 0             'WYZERUJ ZMIENNA ZEZWOLENIE
    Klawisz_2_com = Command       'WPISZ KOD KOMENDY DO EEPROM
    Writeeeprom Klawisz_2_com , 3 'WYSLIJ WARTOSC DO EEPROM POD ADRES 3
    Klawisz_2_adr = Address       'WPISZ KOD ADRESU DO EEPROM
    Writeeeprom Klawisz_2_adr , 4 'WYSLIJ WARTOSC DO EEPROM POD ADRES 4
    Reset Pinb.2                  'ZAPAL DIODE LED
    Waitms 250                    'CZEKAJ 250 ms
    Set Pinb.2                    'ZGAS DIODE LED
    End If : End If

    If Licznik = 3 Then           'SPRAWDZ CZY ZMIENNA LICZNIK  MA WARTOSC 3
    If Zezwolenie = 1 Then        'SPRAWDZ CZY JEST ZEZWOLENIE =1
       Zezwolenie = 0             'WYZERUJ ZMIENNA ZEZWOLENIE
    Klawisz_3_com = Command       'WPISZ KOD KOMENDY DO EEPROM
    Writeeeprom Klawisz_3_com , 5 'WYSLIJ WARTOSC DO EEPROM POD ADRES 5
    Klawisz_2_adr = Address       'WPISZ KOD ADRESU DO EEPROM
    Writeeeprom Klawisz_3_adr , 6 'WYSLIJ WARTOSC DO EEPROM POD ADRES 6
    Reset Pinb.2                  'ZAPAL DIODE LED
    Waitms 250                    'CZEKAJ 250 ms
    Set Pinb.2                    'ZGAS DIODE LED
    End If : End If

    If Licznik = 4 Then           'SPRAWDZ CZY ZMIENNA LICZNIK  MA WARTOSC 4
    If Zezwolenie = 1 Then        'SPRAWDZ CZY JEST ZEZWOLENIE =1
       Zezwolenie = 0             'WYZERUJ ZMIENNA ZEZWOLENIE
    Klawisz_4_com = Command       'WPISZ KOD KOMENDY DO EEPROM
    Writeeeprom Klawisz_4_com , 7 'WYSLIJ WARTOSC DO EEPROM POD ADRES 7
    Klawisz_4_adr = Address       'WPISZ KOD ADRESU DO EEPROM
    Writeeeprom Klawisz_4_adr , 8 'WYSLIJ WARTOSC DO EEPROM POD ADRES 6
    Licznik = 5                   'ZAPISZ DO ZMIENNEJ LICZNIK WARTOSC 5
    Reset Pinb.2                  'ZAPAL DIODE LED
    Waitms 250                    'CZEKAJ 250 ms
    Set Pinb.2                    'ZGAS DIODE LED
    Waitms 250                    'CZEKAJ 250 ms
    Reset Pinb.2                  'ZAPAL DIODE LED
    Waitms 250                    'CZEKAJ 250 ms
    Set Pinb.2                    'ZGAS DIODE LED
    Exit Do
    End If : End If





    Loop
    End If

    '---------------- KONIEC SEKWENCJ ZAPISUJACEJ DO EEPROM-------------------------

    '--SEKWENCJA ODCZYTUJACA Z EEPROM I PRZEPISANIA DO ZMIENNYCH POMOCNICZYCH-------
    Readeeprom Klawisz_1_com , 1  'ODCZYTAJ WARTOSC Z EEPROM Z ADRESU 1
     Klaw_1_com = Klawisz_1_com   'ZAPISZ DO ZMIEENJ POMOCNICZEJ
    Readeeprom Klawisz_1_adr , 2  'ODCZYTAJ WARTOSC Z EEPROM Z ADRESU 2
     Klaw_1_adr = Klawisz_1_adr   'ZAPISZ DO ZMIEENJ POMOCNICZEJ
    Readeeprom Klawisz_2_com , 3  'ODCZYTAJ WARTOSC Z EEPROM Z ADRESU 3
     Klaw_2_com = Klawisz_2_com   'ZAPISZ DO ZMIEENJ POMOCNICZEJ
    Readeeprom Klawisz_2_adr , 4  'ODCZYTAJ WARTOSC Z EEPROM Z ADRESU 4
     Klaw_2_adr = Klawisz_2_adr   'ZAPISZ DO ZMIEENJ POMOCNICZEJ
    Readeeprom Klawisz_3_com , 5  'ODCZYTAJ WARTOSC Z EEPROM Z ADRESU 5
     Klaw_3_com = Klawisz_3_com   'ZAPISZ DO ZMIEENJ POMOCNICZEJ
    Readeeprom Klaw_3_adr , 6     'ODCZYTAJ WARTOSC Z EEPROM Z ADRESU 6
     Klaw_3_adr = Klaw_3_adr      'ZAPISZ DO ZMIEENJ POMOCNICZEJ
    Readeeprom Klaw_4_com , 7     'ODCZYTAJ WARTOSC Z EEPROM Z ADRESU 7
     Klaw_4_com = Klaw_4_com      'ZAPISZ DO ZMIEENJ POMOCNICZEJ
    Readeeprom Klawisz_4_adr , 8  'ODCZYTAJ WARTOSC Z EEPROM Z ADRESU 8
     Klaw_4_adr = Klawisz_4_adr   'ZAPISZ DO ZMIEENJ POMOCNICZEJ
    '-------------------------KONIEC SEKWENCJI--------------------------------------
    '>>>>>>>>>>>>>>>>>>>>>>>>>>PROGRAM GLOWNY>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Do

    If Zezwolenie = 1 Then        'SPRAWDZ CZY JEST ZEZWOLENIE =1
    If Licznik = 1 Then           'SPRAWDZ CZY ZMIENNA LICZNIK  MA WARTOSC 1
    If Klaw_1_com = Command Then  'SPRAWDZ CZY ZMIENNA KLAWICZ1 COM =ZMIENNEJ COMMAND
    If Klaw_1_adr = Address Then  'SPRAWDZ CZY ZMIENNA KLAWICZ1 ADR =ZMIENNEJ ADRES
      Toggle Pinb.7               'ZMIEN STAN TRANZYSTORA Q2 NA PRZECIWNY
     Zezwolenie = 0               'WYZERUJ ZMIENNA ZEZWOLENIE
    End If : End If : End If : End If

    If Zezwolenie = 1 Then        'SPRAWDZ CZY JEST ZEZWOLENIE =1
    If Licznik = 2 Then           'SPRAWDZ CZY ZMIENNA LICZNIK  MA WARTOSC 2
    If Klaw_2_com = Command Then  'SPRAWDZ CZY ZMIENNA KLAWICZ 2 COM =ZMIENNEJ COMMAND
    If Klaw_2_adr = Address Then  'SPRAWDZ CZY ZMIENNA KLAWICZ 2 ADR =ZMIENNEJ ADRES
      Toggle Pinb.6               'ZMIEN STAN TRANZYSTORA Q3 NA PRZECIWNY
     Zezwolenie = 0               'WYZERUJ ZMIENNA ZEZWOLENIE
    End If : End If : End If : End If

    If Zezwolenie = 1 Then        'SPRAWDZ CZY JEST ZEZWOLENIE =1
    If Licznik = 3 Then           'SPRAWDZ CZY ZMIENNA LICZNIK  MA WARTOSC 3
    If Klaw_3_com = Command Then  'SPRAWDZ CZY ZMIENNA KLAWICZ 3 COM =ZMIENNEJ COMMAND
    If Klaw_3_adr = Address Then  'SPRAWDZ CZY ZMIENNA KLAWICZ 3 ADR =ZMIENNEJ ADRES
      Toggle Pinb.5               'ZMIEN STAN TRANZYSTORA Q4 NA PRZECIWNY
     Zezwolenie = 0               'WYZERUJ ZMIENNA ZEZWOLENIE
    End If : End If : End If : End If

    If Zezwolenie = 1 Then        'SPRAWDZ CZY JEST ZEZWOLENIE =1
    If Licznik = 4 Then           'SPRAWDZ CZY ZMIENNA LICZNIK  MA WARTOSC 4
    If Klaw_4_com = Command Then  'SPRAWDZ CZY ZMIENNA KLAWICZ 4 COM =ZMIENNEJ COMMAND
    If Klaw_4_adr = Address Then  'SPRAWDZ CZY ZMIENNA KLAWICZ 4 ADR =ZMIENNEJ ADRES
      Toggle Pinb.4               'ZMIEN STAN TRANZYSTORA Q5 NA PRZECIWNY
     Zezwolenie = 0               'WYZERUJ ZMIENNA ZEZWOLENIE
    End If : End If : End If : End If

      Incr Licznik                'zwieksz zmienna licznik o 1

           If Licznik => 4 Then   'JESLI ZMIENNA LICZNIK JEST = LUB WIEKSZA OD 4
               Licznik = 0        'ZAPISZ DO ZMIENNEJ LICZNIK WARTOSC 0
                End If

     Zezwolenie = 0               'ZABLOKUJ MOZLIWOSC PONOWNEGO DEKODOWANIA KODU


    Loop

    End
    '>>>>>>>>>>>>>>>>>>>>>>>>>>>>PROGRAM GLOWNY>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Odkodoj_sygnal:
    Disable Int0
    Getrc5(address , Command)     'ODKODUJ SYGNAL Z PILOTA

    Incr Licznik                  'zwieksz zmienna licznik o 1
    Zezwolenie = 1                'ZMIENNA ZEZWOLENIE =1

    If Licznik => 4 Then          'jesli licznik osiagnal wartosc=4 lub wieksza od 4
     Licznik = 0                  'wyzeruj
    End If

    Waitms 250                    'CZEKAJ 250 ms

    Enable Int0
    Return



    dodaje jeszcze schemat tego odbiornika
    [90c2313][bascom] Obsługa pamięci eeprom procesora.

    Moderowany przez crazy_phisic:

    Kolejne niezastosowanie się do wytycznych odnoszących się do sposobu zamieszczania listingów zostanie nagrodzone ostrzeżeniem. Post poprawiłem.

    0
  • #13 02 Lip 2008 23:23
    marcin-k
    Poziom 15  

    Mam już program trochę zmodyfikowany było kilka drobnych błędów w symulacji działa mniej więcej tak jak założyłem ale dziwnie się zachowuje przy próbie odczytu kodu w symulacji oczywiście niestety dalej kicha jak wgram do procka włączę to zapala mi się dioda sygnalizacyjna programowanie tak jakby program w Realu nie startował w ogóle jakby się powiesił nie reaguje na nic co źle robie może ktoś mi podpowie lub poprawi program, żeby to działało prawidłowo może trzeba skonfigurować fusbity , ale Niechciał bym coś sknocić jeśli ktoś może się wypowiedzieć i przesłać skany jak mam to poustawiać dodam że w fusach nic nie grzebałem jest to defaultowe ustawienie takie jak nowy scalak z sklepu.
    dodaje jeszcze raz swój program zmodyfikowany

    0
  • #14 06 Lip 2008 01:51
    marcin-k
    Poziom 15  

    Widzę , że niema zbyt dużo chętnych do pomocy , ale spróbuje jeszcze raz zebrać to do kupy i tak program już działa prawie jak chciałem dioda mruga itd.. ale program się wiesza na wykonywaniu procedury przerwania rozkładanie kodu RC5 na komendę i rozkaz sprawdzałem w symulacji i program wykonuje poprawnie wszystko do tego momentu i staje
    Procedura jest następująca w przerwaniu pierwsze co robi to blokuje przerwanie od int0 następnie ma rozłożyć kod na czynniki i tu staje nie wykonuje więcej nic jeśli po komendzie zatrzymującej taimer0 dam zezwolenie na globalne przerwania to program po wykonaniu przerwania skacze na pierwszą linie programu i na ostatnią i tak w kółko wygląda to tak jakby się resetował co źle robie proszę pomóżcie jeśli nie odezwie się nikt w ciągu kilku dni proszę moderatora o usunięcie całego tego postu mówi się trudno będę szukał odpowiedzi na innych forach załączam kod do sprawdzenia dla chętnych udzielić pomocy z góry bardzo dziękuję

    jest to nieco inny kod niż wcześniej ma co prawda tą samą nazwe , ale jest trochę zmieniony

    0
  • #15 09 Lip 2008 07:21
    marcin-k
    Poziom 15  

    temat można zamknąć poradziłem sobie sam z problemem jeszcze troche zmodyfikowałem program i działa bardzo dobrze

    0