problem z 8051

Oct 08, 2003 4 Replies

Witam Otuz mam taki proble z programem , ze chcac zapetlic warunek if nastepuje zliczanie CP i gdy doijdzie do FF nastepuje powrot do poczatku programu.Co jest grane ,jestem nowicjuszem w tej dziedzinie? Oto przykladowy program? Ustawiam recznie Pil na 1 i nastepuje przeskok do sub Otw nastepnie ustawiam Pil 0 i tam zaczyna sie problem bo nie chce ciagle zapetlac.



'Konfiguracja


$crystal = 10000000


'------------------------------------------------------------- 'DEKLARACJA PRZYPISÓW PRZYCISKOW



Otw Alias P1.5 Zam Alias P1.4 Lamp Alias P3.7 Domyk Alias P1.6



Pr Alias P1.0 Pru Alias P1.1 Pil Alias P1.2 '------------------------------------------------------------- 'Glówna petla programu



Declare Sub Otw


P1 = 0 P3 = 0



Do



If Pil = 1 Then Call Otw end if



P1 = 0 P3 = 0 Loop



Sub Otw



Waitms 1



Set Domyk



Waitms 1



Set Otw



Waitms 1



Set Zam



Waitms 1



Set Lamp



Waitms 1



If Pr = 0 And Pru = 0 Then call otw End If



end sub


On Behalf Of amigo

A gdzie jest SP? pzdr Artur

U¿ytkownik "ziel" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@poczta.onet.pl...

W pierwszym poscie. To jest wskaznik stosu.

On Behalf Of amigo

Sorki, ale tak napisałeś jakbyś liczył jakąś zmienna.

  1. nigdy nie używaj tej samej nazwy dla alias i funkcji.
  2. tyczy się to również zmiennych.
  3. Zawsze będzie Ci przepełniał stos bo po każdym wywołaniu podprogramu zawsze będzie odkładał na niego adres powrotu.

sub sub_otw

Do ... loop until Pr > 0 And Pru > 0 end sub

pzdr Artur

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required