Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

DS89C430 + BASCOM 51 = problem z szybkością programu

xtype 12 Jun 2007 10:57 1278 4
  • #1
    xtype
    Level 10  
    Mam problem z szybkością wykonywania programu napisanego w BASCOM 51 na procesor DS89C430. Programy wykonują się za wolno. Owy procesor jest jednotaktowy, w bascom deklaruję procesor jako 89C420.dat, podłączony kwarc 16MHz czywiście tak zdeklarowany w programie. Doszedłem, że program jest wykonywany ok 12 x wolniej niż powinien, znalzłem w pliku 89C420.dat pozcję divide=1 i dopiero gdy to zmieniłm na divide=12 to program jest wykonywano poprawnie, ale pytanie c0 jest nie tak, czy to znaczy że DS89C430 nie jest jednotaktowy tylko 12 taktowy czy to BASCOM ma jakoś z tym problem ??? Czy to możliwe że DS89C430 domyślnie idzie w trybie 12 taktowym ? Gdzie tu jest bład ?

    dzięki
  • #2
    User removed account
    User removed account  
  • #3
    xtype
    Level 10  
    Zatem powinno być 1:1 i 16MHz kwarcu to 16MHz procesora... ale dlaczego w BASCOM muszę zmieniać dzielnik by było dobrze ?
  • #4
    Fobos319
    Level 14  
    prawdopodobnie nie zmieniles w fusbitach dzielnika czestotliwosci :0
    poszperaj dokladnie w pdf od klocka a stanie sie jasnosc
  • #5
    Jacek31
    Conditionally unlocked
    Ej chłopaki, nie ma jednotaktowych 51,pomyliło się wam z AVR. DS89C430 potrzebuje 4 takty zegara na wykonanie instrukcji (1 cyklu maszynowego), jeżeli ta jest jednoargumentowa. I 12 taktów dla 2 argumentowych (np. odczyt z zewnętrznego RAM), Czyli taktowany 16MHZ, może ich wykonać max 4 Miliony na sek. Dodatkowo może pracować jak zwykła 51 i dlatego jest te 12x wolniejszy a właściwie tylko 3x, bo potrzebuje wtedy 12 taktów zegara na cykl maszynowy.

    A przepraszam w nocie katalogowej pisze One Clock-Per-Machine Cycle, czyli producent twierdzi iż jest jednotaktowy. Moje dane były jednak troche za stare.