problem z at89c2051 i dobraniem sie do ds1802 w bascomie.

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
kurt
-
Posty: 6
Rejestracja: 26 sie 2005, 9:54
Kontakt:

problem z at89c2051 i dobraniem sie do ds1802 w bascomie.

Post autor: kurt » 26 sie 2005, 10:04

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.

tasza
Użytkownik
Posty: 1389
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 26 sie 2005, 10:27

to jest w C, ale chodzi głównie o sposób generowania sygnałów dla DS1802...

Kod: Zaznacz cały

void SendVolumeData (signed char schVolLevel ) {

  DSPOT_RST_HI;
  DSPOT_D_LO;
  DSPOT_CLK_LO;

  unsigned char uchBitNo;
  unsigned char uchVolByte = schVolLevel;

  for ( uchBitNo = 0; uchBitNo < 8; uchBitNo++ ) {
    DSPOT_D_LO;
    if ( uchVolByte & ((unsigned char)1 << uchBitNo) ) {
       DSPOT_D_HI;
    }
    NOP();
    DSPOT_CLK_HI;
    NOP();
    DSPOT_CLK_LO;
    NOP(); 	
  }

  for ( uchBitNo = 0; uchBitNo < 8; uchBitNo++ ) {
    DSPOT_D_LO;
    if ( uchVolByte & ((unsigned char)1 << uchBitNo) ) {
      DSPOT_D_HI;
    }
    NOP();
    DSPOT_CLK_HI;
    NOP(); 
    DSPOT_CLK_LO;
    NOP(); 
  }

  DSPOT_RST_LO;
  DSPOT_D_LO;
  DSPOT_CLK_LO;
}

kurt
-
Posty: 6
Rejestracja: 26 sie 2005, 9:54
Kontakt:

Post autor: kurt » 26 sie 2005, 10:37

ok znam C ale szczerze mowiac to za wiele mi to nie powiedzialo;-)
, umiem odczytac jak powinny sie zmieniac stany tych 3 zaciskow , bardziej chodzi mi jak to rozwiazac softwareowo, i tak akurat w bascomie;]

Z gory dzieki

PS.
Calkiem fajne to forum, tylko troszka maly ruch;]

Awatar użytkownika
gaweł
Użytkownik
Posty: 653
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 26 sie 2005, 14:58

kurt pisze:Calkiem fajne to forum, tylko troszka maly ruch;]
Właśnie z tego powodu jest fajne.

kurt
-
Posty: 6
Rejestracja: 26 sie 2005, 9:54
Kontakt:

Post autor: kurt » 29 sie 2005, 22:02

to moze jakas fajna ksiazka ? ;] bo po przestudiowaniu kursu bascoma z edw nie jestem w stanie podolac temu programowi;]

Wojtek
Moderator
Posty: 2604
Rejestracja: 04 sie 2002, 19:00
Lokalizacja: --
Kontakt:

Post autor: Wojtek » 30 sie 2005, 4:21

kurt pisze:to moze jakas fajna ksiazka ? ;] bo po przestudiowaniu kursu bascoma z edw nie jestem w stanie podolac temu programowi;]
O ile się nie mylę to dla bascom i '51 książek nie ma. Gdybyś pytał o C i '51 to jest tego sporo. Dla bascom i AVR jest bardo dobra ksążka "Programowanie mikrokontrolerów AVR w języku Bascom" i tam jest nawet ten temat o którym piszesz dokładnie omówiony. Pocztraj na temat dostępnej literatury tutaj

e-11
-
Posty: 12
Rejestracja: 20 wrz 2005, 20:52

Post autor: e-11 » 22 wrz 2005, 19:19

Mam podobny komunikat jak Ty Kurt przy deklarowanie zmiennej typu string nie wiem dlaczego raz pojawia się a raz nie ale piszę też z innym problemem . Pisze sobie programik do obsługi kolektora między innymi korzystając z czujników DS że nie jestem w tym biegły co jakiś czas kompiluje i sprawdzam w symulatorze . po pewnym czasie wyskoczył mi błąd
Error 10: wrong type(Bit,Byte,Integer,Word or String)expected i file line: 30
To te kolorowe linie , wróciłem do wersji ostatniej dobrej i dalej to samo . Aby było ciekawiej to niosę plik na inny komputer i tam jest wszystko ok.!. już trafia mnie i jestem bliski pogryzienia klawiatury, byłbym wdzięczny gdyby ktoś pomógł. Przedstawiam tylko fragment początkowy kodu z zaznaczeniem owych linii

Config 1wire = P1.0
Deflcdchar 0 , 231 , 231 , 231 , 224 , 224 , 224 , 224 , 224 'deklaracja znaku stopni
Dim Tz As Integer 'temperatura zbiornika
Dim Tk As Integer 'temperatura kolektora
Dim Tnastawa As Byte
Dim Tkolektora As Byte
Dim K As Byte ' zmienna pomocnicza do wyświetlania komunikatów
Dim J As Byte ' zmienna pomocnicz do zapamiętywania nastaw
Dim Tmin As Byte 'temperatura od której pracuje pompa
Dim Tmax As Byte 'temperatura max po której pompa nie pracuje
Dim Tróż As Byte
Pompa Alias P3.0
Alarm Alias P3.1
Elektrozawór Alias P3.2
Esc Alias P3.3
Enter Alias P3.4
Dól Alias P3.5
Góra Alias P3.7
Tmin = 38 'temperatura od której ma pracować pompa
Tmax = 80 'w głównym programie wpisz to na początku
Tróż = 3 'i temperatura alarmu i wyłączenia pompy
'temperaturaróżnicowapomiędzyzbiornikiem 'i kolektorem

Dim Adr(16) As Byte
Dim Odczyt(2) As Byte
Dim X As Byte
X = 1
Adr(x) = 1wsearchfirst() 'znajdź pierwszy adres
X = 9
Adr(x) = 1wsearchnext() 'znajdź drugi adres
Do

kurt
-
Posty: 6
Rejestracja: 26 sie 2005, 9:54
Kontakt:

Post autor: kurt » 22 wrz 2005, 19:23

e-11 przeinstaluj bascoma (tak Ci radzili na elektrodzie;-) )

e-11
-
Posty: 12
Rejestracja: 20 wrz 2005, 20:52

Post autor: e-11 » 22 wrz 2005, 19:30

Dzięki muszę tam zajrzeć ,pół godziny temu nie było tam żadnej odpowiedzi. ale dzięki za szybką reakcje. Powodzenia

ODPOWIEDZ