Bascom

Pętla While Wend.

Pętla While Wend może działać samodzielnie, jak i można ją zagnieździć w pętli Do.
Sposób działania opisany jest pod programem. Skrótowo można powiedzieć, że nie wykona instrukcji tak długo dopóki nie pojawi się założona czynność.


Pętla While Wend

'WhileWend.bas

 'Program poglądowy, do czego służy pętla While Wend.

 'Można załączyć Port lub wykonać inną instrukcję.

 'Opis pod programem.

 'Opracował Henryk Wydmuch

 'Program zajmuje 10% pamięci.

 

 $regfile = "m8def.dat"                                     'Info dla kompilatora.

$crystal = 10240000                                         'Informujemy kompilator o kwarcu 10,24MHz.

 

 Config Lcd = 16 * 2                                        'Konfiguracja Lcd.

 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

 

 

 Config Pind.1 = Output                                     'Port wykonawczy.

 Config Pind.6 = Input                                      'Przycisk P1.

  Set Portd.6                                               'Ustaw poziom wysoki na wyjściu Portd.6.

  Set Portd.1                                               'Ustaw poziom wysoki na wejściu Portd.1.

 

  Dim Syr As Byte                                           '

  Syr = 0                                                   '

  Writeeeprom Syr , 12                                      '

 

 Cls                                                        'Wyczyść Lcd.

 

 '------------------------------------------------------------------------------------------------------

 

Syr = 115                                                   'Do zmiennej Syr wpisz 115.

If Pind.6 = 0 Then                                          'Jeśli w Portd.6 pojawi się 0 (nacisnęliśmy przycisk P1).

 

Writeeeprom Syr , 12                                        'Wpisz zmienną do Eprom, adres 12.

Syr = 0                                                     '

Lcd "Zmienna zapisana" ;                                    'Pokaż komunikat.

End If                                                      '

 

Wait 2                                                      'Poczekaj 2sek.

 

Readeeprom Syr , 12

 

While Syr = 115                                             'Pętla. Czekam, aż będzie Syr 115.

Lowerline                                                   'W drugiej linii Lcd...

Lcd "Syr = " ; Syr;                                         'Pokaż wartość Syr.

 

Waitms 500                                                  'Czekaj 0,5sek.

 

Reset Portd.1                                               'Załącz Portd.1, zaświeć Led1

 

Wend                                                        'Koniec pętli Wend.

 

'--------------------------------------------------------------------------------------------------------

 

'Objaśnienie:

'Procesor sprawdza program kolejno, od góry do dołu.

'Po deklaracjach Lcd, Portów, zmiennej Syr, zeruje zmienną, zapisuje ją do Eprom pod adres 12 (jako zerową),

'czyści Lcd (cls), zapisuje do zmiennej Syr wartość 115 i napotyka na "Jeżeli...". Jeżeli Portd.6 dołączymy do masy,

'to zmienna Syr zostanie zapisana do Eprom. Po zapisaniu, zeruje Syr. Pojawia się komunikat "Zmienna zapisana" i End If.

'Czeka 2sek i odczytuje Syr z Eprom.

'Tu zaczyna swoją funkcję pętla While.

'Dopóki nie pojawi się w zmiennej Syr (odczytanej z Eprom) wartość 115,  to w drugiej linii Lcd nie pojawi się

'komunikat "Syr = 115", ani też nie załączy się Portd.1 (Led1).

'Koniec.