TECH_FUN Posted May 8, 2005 Share Posted May 8, 2005 Salut ! :)Ma ajuta cineva cu un algoritm de impartire pe 16 bit (pe care nu-l gasesc nicaieri)....pls, pls. Ma intereseaza algoritmul, eventual poate chiar o rutina gata facuta, pe care s-o studiez si sa deduc eu cum lucreaza :idea:.Am incercat sa-l fac singur, dar intotdeauna ma lovesc de faptul ca impartirile intermediare depasesc 8 digit, si nu mai pot folosi instructiunea DIV AB :( Multumesc oricine ai fi Link to comment
psanyi Posted May 8, 2005 Share Posted May 8, 2005 Daca stii limbajul C eu iti recomand SDCC care are si libraria math si este si gratuit (adica open source) http://sdcc.sourceforge.net/ Am facut multe programe pt MCS51 cu el si sunt multumit ! Succes ! Link to comment
TECH_FUN Posted May 9, 2005 Author Share Posted May 9, 2005 Ms mult, dar din C imi mai amintesc vag ceva de "printf si scanf", adica ce-am facut acum vreo 8 ani in urma, in primul an de facultate...:( Succes si tie in continuare , inteleg ca ai ceva experienta in domenul uControlerelor. Si totusi, NU GASESC UN ALGORITM DE IMPARTIRE PE 16 BIT in limbaj de asamblare :( Chiar nimeni nu stie cum se face? :? pls... Link to comment
psanyi Posted May 9, 2005 Share Posted May 9, 2005 Ms mult, dar din C imi mai amintesc vag ceva de "printf si scanf", adica ce-am facut acum vreo 8 ani in urma, in primul an de facultate...:( Succes si tie in continuare , inteleg ca ai ceva experienta in domenul uControlerelor. Si totusi, NU GASESC UN ALGORITM DE IMPARTIRE PE 16 BIT in limbaj de asamblare :( Chiar nimeni nu stie cum se face? :? pls...Uite pt Atmel MCS51 intreg cu semn (signed int) __divsint: ; dph in dph ; (__divsint_PARM_2 + 1) in (__divsint_PARM_2 + 1) clr F0 ; Flag 0 in PSW ; available to user for general purpose mov a,dph jnb acc.7,a_not_negative setb F0 clr a clr c subb a,dpl mov dpl,a clr a subb a,dph mov dph,a a_not_negative: mov a,(__divsint_PARM_2 + 1) jnb acc.7,b_not_negative cpl F0 clr a clr c subb a,(__divsint_PARM_2) mov (__divsint_PARM_2),a clr a subb a,(__divsint_PARM_2 + 1) mov (__divsint_PARM_2 + 1),a b_not_negative: lcall __divuint jnb F0,not_negative clr a clr c subb a,dpl mov dpl,a clr a subb a,dph mov dph,a not_negative: retsi fara semn mov r2,#16 clr a mov r3,a mov r4,a loop: mov a,dpl ; a <<= 1 add a,acc mov dpl,a mov a,dph rlc a mov dph,a mov a,r3 ; reste <<= 1 rlc a ; feed in carry mov r3,a mov a,r4 rlc a mov r4,a mov a,r3 ; reste - b subb a,(__divuint_PARM_2) ; here carry is always clear, because ; reste <<= 1 never overflows mov b,a mov a,r4 subb a,(__divuint_PARM_2 + 1) jc smaller ; reste >= b? mov r4,a ; -> yes; reste = reste - b; mov r3,b orl dpl,#1 smaller:; -> no djnz r2,loop retSper sa-ti fie de ajutor asa ca idee.Aveam si intr-ocarte un algoritm de impartire dar din pacate l-am dat la cineva si dureaza pana il recuperez Succes Link to comment
psanyi Posted May 9, 2005 Share Posted May 9, 2005 Eventual spune-mi ce soft vrei sa faci pt acel atmel si te ajut cu placere si in C, daca poti sa-mi dai o organigrama sau eventual un pseudocod.Daca nu, asa in mare dupa o schema de principiu . Link to comment
Guest zc Posted May 10, 2005 Share Posted May 10, 2005 pe site la atmel e o nota de aplicatie cu inmultiri si impartiri pentru avr. Link to comment
psanyi Posted May 10, 2005 Share Posted May 10, 2005 pe site la atmel e o nota de aplicatie cu inmultiri si impartiri pentru avr.AT89C2051 nu este AVR ! AT90Sxxx, ATTiny, ATMega sunt AVR ...8030,80C30,8051,8052,80C51,80C52,AT89C51,AT89C2051,89S8252 sunt toate MCS51 compatibile. Sunt mai lente ca AVR Link to comment
TECH_FUN Posted May 10, 2005 Author Share Posted May 10, 2005 Ms mult psanyi, ai fost dragut:). Am sa studiez sa inteleg algoritmul, poate folosesc rutina chiar in forma in care este. Cat despre a ma ajuta tu (sau altcineva) cu programul, mai bine nu --multumesc oricum--, pentru ca stii foarte bine ca e mult mai FUN atunci cand ceea ce vrei sa faci obtii prin forte proprii si nu ajutat, nu as avea aceeasi satisfactie... :wink: Ceea ce vreau sa fac e in aceeasi masura in scop (auto)didactic cat si pentru FUN http://www.luberth.com/analog.htm Daca dai cautare dupa propeller clock vei gasi si alte site-uri interesante de genul asta...Poate-ti dau idei Succes ! Link to comment
psanyi Posted May 10, 2005 Share Posted May 10, 2005 Ms mult psanyi, ai fost dragut:). Am sa studiez sa inteleg algoritmul, poate folosesc rutina chiar in forma in care este. Cat despre a ma ajuta tu (sau altcineva) cu programul, mai bine nu --multumesc oricum--, pentru ca stii foarte bine ca e mult mai FUN atunci cand ceea ce vrei sa faci obtii prin forte proprii si nu ajutat, nu as avea aceeasi satisfactie... :wink: Ceea ce vreau sa fac e in aceeasi masura in scop (auto)didactic cat si pentru FUN http://www.luberth.com/analog.htm Daca dai cautare dupa propeller clock vei gasi si alte site-uri interesante de genul asta...Poate-ti dau idei Succes !Corect asa este.Si mie imi place sa ma chinui.As fi in stare cateodata sa redescoper si roata :lol: :lol: :lol: desigur daca este vorba de FUN si nusunt stresat de nimeni. Sper sa-ti fie de ajutor .Idei am si io multe dar pare interesanta si asta Link to comment
Guest zc Posted May 11, 2005 Share Posted May 11, 2005 stai calm, stiu ca 89c.. nu e avr. in nota aia sint descrisi cit de cit si algoritmii. Link to comment
Guest crushedy Posted May 25, 2005 Share Posted May 25, 2005 Am si eu nevoie va rog de un program care imi afiseaza pe 3 digits timpul dintre 2 apasari succesive ale unui comutator! Link to comment
psanyi Posted May 25, 2005 Share Posted May 25, 2005 Am si eu nevoie va rog de un program care imi afiseaza pe 3 digits timpul dintre 2 apasari succesive ale unui comutator!Dupa ce schema sa mearga programul ? In ce limbaj de programare ?( C ASM sau format binar) Link to comment
Guest crushedy Posted May 25, 2005 Share Posted May 25, 2005 In Assambler sa fie programul iar LED-urile sa fie conectate la P1 si P3.1 P3.2 P3.3 iar comutatoarele la P3.4 si P3.5. Link to comment
bogdanm Posted May 25, 2005 Share Posted May 25, 2005 TECH_FUN, ia uite peste ce dadeai daca rascoleai un pic netu http://www.8052.com/codelib.phtml Link to comment
TECH_FUN Posted May 29, 2005 Author Share Posted May 29, 2005 OOOOOO, COOOL :wink: :idea: ms !!!!! Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now