Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Bascom AT89C2051] sterowanie DS1802 3wire serial.

Balu 26 Aug 2005 11:14 2655 2
  • #1
    Balu
    Level 38  
    Witam
    chciałem sobie zrobić ładny cyfrowy regulator do wzmacniacza...
    wybor padl na ds1802
    i tu sie robia klocki bo o ile jestem w stanie przegryzc jak to wysterowac przyciskami, to z programem mam juz spore klopoty...
    o ile dobrze zrozumialem note to na czas wysylania daynch trzeba wystawic na reset 1, i zgodnbie z zegarem wysylac dane...
    i tutaj moj glupiutki programik... jesli bardzo razi w oczy przepraszam;], mea culpa chcialem na poczatek dla testow cos takiego zrobic:
    na p1.4 dajac 1 zeby ustawil maxymalna rezystancje, a dajac 0jakas tam srednia.

    Declare Sub Wyslij(a As Integer)
    
    Dim Nastaw(15) As Integer
    Dim Licznik As Byte
     Dim A As Integer
    
    
    Resset Alias P1.1
    Zegar Alias P1.2
    Dane Alias P1.3
    Wybor Alias P1.4
    
    Do
    If Wybor = 1 Then
    Nastaw(15) = &B0010000100100001
    Else
    Nastaw(15) = &B0010010100100101
    End If
    
    Call Wyslij(nastaw(15))
    
    
    Wait 1
    
    Loop
    End
    
    
    Sub Wyslij
    Resset = 1
    
    For Licznik = 0 To 15
    If Zegar = 1 Then
    Zegar = 0
    Else
    Zegar = 1
    End If
    Dane = Nastaw(licznik)
    Next Licznik
    
    Waitms 500
    resset=0
    
    End Sub


    i kombinuje i kombinuje a przy kompilacji wychodzi mi out of internal memory co oznacza? i tu jedno z moich pytanek - co znaczy ten komunikat...


    of kos bascom + at89c2051
    moze jakas mala podpowiedz? bede wdzieczny.
    Pozdrawiam Lukasz.

    PS
    ah no i jeszcze powiem na jakie dane czeka ds1802...
    czeka na 16bitow w takiej kolejnosci:
    dont care, mute (0-cisza),6bitowa wartosc, jeszcze raz to samo dla drugiego kanalu.
    np:
    -0100001-01MSB00001LSB
    ds czeka najpierw na lsb.
    Moderated By Light-I:

    3. W temacie wiadomości należy dokładnie zawrzeć całą istotę wysyłanych informacji. Gwarantuje to łatwe wyszukiwanie i czytelne przeglądanie przez osoby zainteresowane. Nie akceptujemy tematów w stylu "pomoc", "problem"
    Regulamin www.elektroda.pl znajduje się Tutaj. Kod ujęto w tagi "code". Tytuł tematu poprawiono. Proszę poprawić styl pisowni na mniej niedbały, wypadałoby uszanować czytających (polskie znaczki, duże i małe litery, stosowanie "slangu"), lenistwo nie będzie tu tolerowane... ;) Następnym razem Kosz... :P

  • #2
    LordBlick
    VIP Meritorious for electroda.pl
    Balu wrote:
    kombinuje i kombinuje a przy kompilacji wychodzi mi out of internal memory co oznacza? i tu jedno z moich pytanek - co znaczy ten komunikat...
    Mniej więcej "zabrakło wewnętrznej pamięci", a w przełożeniu praktycznym - "do tego kodu kup sobie pan inny procesorek"... :P Oczywiście można kod też poprawić, aby nie był taki niegrzeczny ten komunikat, ale tu już są inni mocniejsi ode mnie w temacie Bascom (zumek do tablicy)... ;)
    --
    Pozdrawiam, Daniel
  • #3
    zumek
    Level 39  
    Widzę , że Twoje kłopoty należą do kategori "Podstawowe" , a to oznacza , że nie bardzo wiesz co robisz :(
    Zwróć uwagę na typy zmiennych.Deklarujesz np. ...
    
    Dim  Nastaw(15) As Integer
    

    ... czyli 15-to elementową tablicę typu Integer , a następnie traktujesz ją ...
    
    Dane = Nastaw(licznik)
    

    ... jak tablicę bitową.
    Balu wrote:

    i kombinuje i kombinuje a przy kompilacji wychodzi mi out of internal memory co oznacza? i tu jedno z moich pytanek - co znaczy ten komunikat...

    To oznacza , że zapotrzebowanie kompilatora na wewnętrzną pamięć RAM jest większe od zadeklarowanego.Musisz przydzielić więcej pamięci na zmienne.

    Piotrek