8051 i 1sekunda

Loading thread data ...
Reply to
invalid unparseable

Paweł Cern snipped-for-privacy@surname.neostrada.pl> napisał(a):

Zgadzam się z Pawłem , ale ... nie całkowicie ;)

50 ms/1 s (5%) spóźnienia , nie uznałbym za "(niewielkie, ale są)".

void pr1() interrupt 1 using 1 { if ( zn == 20 ) P1 = 0; if ( zn == 40 ) {P1 = 1; zn = 0;} // TR0 = 0; TH0 = 0x4c; // TL0 = 0; // TR0 = 1; zn++; } Po powyższych zmianach błąd wynosi ~20 us co myślę , że można uznać za "(niewielkie, ale są)" ;-)

Pozdrawiam Piotrek

Reply to
Piotrek Sz.

Użytkownik Lukas napisał:

Mocno się mija?

Może któraś z poniższych informacji pomoże:

Mode 0 Putting either Timer into Mode 0 makes it look like an 8048 Timer, which is an 8-bit Counter with a *divide-by-32 prescaler*[...]

Jakby sugerowali dodatkowy podzial 1/32 ...

Mode 1 Mode 1 is the same as Mode 0, except that the Timer register is being run with all 16 bits.

Jest jeszcze zdaje się rejestr CKCON i tam bit X2, który umożliwia przestawienie procka w tryb pracy 1/6 (default jest chyba 1/12). oraz T0X2 ktory wlacza prescaler 1/2 dla zgara T0. Warto sprawdzic jakie mają wartości (CKCON zdaje sie moze byc tylko programowany przez parallel programmer).

Reply to
Pawel Tomulik

Lukas napisal:

Na studiach na laborce mialem taki fajny sprzetowy uklad z 8051 i jesli mnie pamiec nie myli to zeby to bylo dokladnie to trzeba sobie wyliczyc ile cykli bedzie sie wykonywal program do miejsca ustawiania timerow i ew. odpowiednio skorygowac.. (ale to juz sugerowal ci ktos ponizej a ja przyznam ze za bardzo nie pamietam juz jak to szlo ) :(

Wlasnie sie doszukalem jakis prostych programikow z tych laborek. tu jest jakis przyklad z timerem ale za chiny nie przypomne sobie szczegolow. podejrzewam ze ma mrugac diodami na wyjsciu co iles... : CZEST EQU 50000 CZAS EQU 10 WYJSCIE BIT P5.1

DSEG AT 20H LICZ: DS 1

CSEG AT 8000H AJMP START ORG 802BH DJNZ LICZ,KON MOV LICZ,#CZAS INC A MOV P4,A SETB WYJSCIE CLR WYJSCIE KON: CLR TF2 RETI NOP NOP ORG 8100H START: CLR WYJSCIE MOV LICZ,#CZAS ; USTAWIENIE T2 MOV CRCL,#LOW(10000H-CZEST) MOV CRCH,#HIGH(10000H-CZEST) MOV TH2,#HIGH(10000H-CZEST) MOV TL2,#LOW(10000H-CZEST) MOV T2CON,#91H SETB ET2 ; START MOV A,#1 MOV P4,A SETB WYJSCIE CLR WYJSCIE SETB EAL LJMP $ NOP NOP END

moze ci sie przyda do czegos...

Pozdrawiam

Reply to
Dylon

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.