logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Skok do podprogramów za pomocą przycisku.

elektro92 13 Gru 2010 23:52 1581 7
REKLAMA
  • #1 8865936
    elektro92
    Poziom 15  
    Witam.Jestem początkujący.Mam problem jak wykonać skok do podprogramu przy użyciu 1 przycisku?

    Program BASCOM


    Dzięki:)
  • REKLAMA
  • #2 8866012
    mirekk36
    Poziom 42  
    Ja też miałbym problem żeby wykonać skok do podprogramu za pomocą przycisku, uwierz mi.

    Ale za to przy pomocy odpowiednich poleceń nie sprawia to już żadnego kłopotu a w helpie (klawisze F1) masz dokładnie opisane nawet takie polecenia w Bascomie. Zaglądałeś tam?
  • REKLAMA
  • #3 8866029
    elektro92
    Poziom 15  
    Zagładałem.Jak już wcześniej pisałem dopiero zacząłem wspóprace z BASCOMem...

    skok do podprogramu umię wykonać ale chciałbym aby byłó tak:

    *wciskam przycisk
    *skok do podprogramu 1(nie wraca do programu gł. tylko w pętli wykonuje ten podprogram)
    *wciskam drugi raz ten sam przycisk i skacze do nastepnego podprogramu...itp

    Dzieki za odp:)


    Nie chce gotowego kodu..lecz wskazówki jakich komend powinienem użyć:)
  • Pomocny post
    #4 8866195
    arktik1
    Poziom 27  
    Jeśli wciśniesz przycisk to GOSUB do podprogramu.
    W podprogramie wykonuje się pętla Do...LOOP.
    Jeśli przyciśniesz przycisk w podprogramie to RETURN do programu głównego.
  • #5 8866293
    elektro92
    Poziom 15  
    arktik1 - oto mi chdziło. Nie mogłem tego znaleść.Dzieki wielkie:) Pozdrawiam
  • REKLAMA
  • #6 8879640
    elektro92
    Poziom 15  
    Teraz pytanie z innej beczki: wgrałem program: i dioda ciagle swieci..nie reaguje na przyciski

    $regfile = "attiny2313.dat"                 'najpierw określamy typ proca 
    $crystal = 1000000                          'definiujemy z jakim taktowaniem będzie pracował 
    
    
    config portb=input                          'port b  jako wejścia 
           portb=&B00000000                     'wszędzie stan spoczynkowy-0 
    config portd=output                         'pprt d jako wyjścia 
           portd=&B0000000                      'wszędzie stan spoczynkowy-0 
    
    
     do                                         'pętla nieskończona 
    
       if pinb.0=1 then                         'jeżeli przycisk 1 wciśnięty 
       portd.0=1                                'zapal diode 
       elseif pinb.1=1 then                     'jeżeli przycisk 2 wciśnięty 
       portd.0=0                                'zgaś diodę 
       endif                                    'koniec bloku warunkowego 
    
     loop                                       'koniec pętli 
      
    end                                         'koniec programu



    probowałem przycisk do may,pozniej do +Vcc i nic dalej nie reaguje...Mam pytanie czy to wina braku kwarcu? gdzies przeczyałem ze attiny2313 ma wewnetrzny kwarc 1Mhz...
  • #7 8891875
    rrytel
    Poziom 14  
    wewnętrzny oscylator, rzadko kiedy bywa to dokładnie 1MHz ale coś około tego. Tylko musisz mieć ustawione źródło taktowania procesorka na Internal Calibrated Oscillator (w fusebitach).
  • REKLAMA
  • #8 8891948
    arktik1
    Poziom 27  
    zrób tak:
    
    config portb=input                          'port b  jako wejścia
           portb=&B11111111
    

    i tak:
    
    do                                         'pętla nieskończona
    
       if pinb.0=0 then                        'jeżeli przycisk 1 wciśnięty
       portd.0=1 
       endif                              'zapal diode
       if pinb.1=0 then                     'jeżeli przycisk 2 wciśnięty
       portd.0=0                                'zgaś diodę
       endif                                    'koniec bloku warunkowego
    
     loop                                       'koniec pętli
    


    Dodano po 4 [minuty]:

    I fusebity:
    Int RC Osc 8MHz + włączone:Divide clock by 8 internally.
REKLAMA