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

[Bascom] Nie działające programy na attiny2323

wojtek9104 16 Kwi 2010 15:24 2100 19
REKLAMA
  • #1 7968120
    wojtek9104
    Poziom 16  
    Witam.
    Od jakiegoś czasu prubuje pisac najprostsze programy w bascomie i nie chcą mi one działac przez co porzuciłem ten temat jakis czas temu ale postanowiłem jeszcze sprubowac;
    Np taki przykładowy program który zapala diodę jeśli na pinie B0 pojawi się +:


    $regfile = "attiny2313.dat"                                 'typ proca
    $crystal = 1000000                                          'taktowanie
    
    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
       End If                                                   'koniec bloku warunkowego
    
     Loop                                                       'koniec pętli
    
    End                                                         'koniec programu


    I niestety nie działa.
    Gdy podłącze zasilanie do attiny dioda się zaświeca i na tym koniec nie reaguje na przycisk.

    A może poprostu attiny jest uszkodzony:/ pomoże ktos??

    Post raportowany,
    proszę pisać bez błędów i literówek,
    posty proszę poprawić.
    And!
  • REKLAMA
  • #2 7968329
    sp3ots
    Poziom 38  
    Witam !
    Trochę zmieniłem, i działa.
    
    $regfile = "attiny2313.dat"
    $crystal = 1000000
    Config Portb = Input
    Portb = &B11111111
    Config Portd = Output
    Do
       If Pinb.0 = 1 Then
       Portd.0 = 1
       Else
       Portd.0 = 0
       End If
    Loop
    End
    

    Pozdrawiam. Stefan
  • #3 7968610
    wojtek9104
    Poziom 16  
    a dlaczego wejścia skonfigurowałeś w stan wysoki??


    NO więc program działa ale dioda gaśnie jeśli do ponu B0 podłącze mase. :/
    a chce to zrobic tak aby dioda się zapalała tylko wtedy kiedy do tego pina podlącze +

    Dokładnie tak było również w innych prostych programach które próbowałem napisac.
  • REKLAMA
  • #4 7968645
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #5 7968831
    wojtek9104
    Poziom 16  
    tak bo gdy do pina B0 nie jest nic podpięte to dioda się świeci a chce sterowac plusem zasilania.
  • #6 7968863
    Konto nie istnieje
    Poziom 1  
  • #7 7968955
    wojtek9104
    Poziom 16  
    atom1477 napisał:
    Wstaw rezystor 10k od pinu do masy.
    I usuń tą linijkę:
    Portb = &B11111111


    Ok teraz by wszystko było ok.
    Tylko ten opornik bardzo się grzeje a podłączyłem duży ( 5W )
    I jeśli bym chciał zmontowac taki układ to by sie spalił.

    Czy to może byc spowodowane tym że płytka stykowa w jakimś stopniu przewodzi prąd?? :/
  • REKLAMA
  • #8 7969118
    Konto nie istnieje
    Poziom 1  
  • #9 7969149
    wojtek9104
    Poziom 16  
    Racja :/ dałęm 10R.

    A ten opornik to zależy od czegoś czy tam jest czy poprostu musi byc.
    Bo jak czytałem kurs bascoma to poprostu program jest i ma działac??
  • Pomocny post
    #10 7969195
    Konto nie istnieje
    Poziom 1  
  • #11 7969218
    wojtek9104
    Poziom 16  
    Dzieki atom1477 za info:)
    Czyli każdy pin który bedzie sterowany plusem musze przez opornik połączyc z masą?? Dobrze rozumiem??
  • Pomocny post
    #12 7969630
    Konto nie istnieje
    Poziom 1  
  • #13 7971014
    wojtek9104
    Poziom 16  
    Mam jescze jeden problem:
    Napisałem taki program:
    $regfile = "attiny2313.dat"
    $crystal = 1000000
    Config Portb = Input
    
    Config Portd = Output
    Do
    
    If Pinb.0 = 0 And Pinb.1 = 0 Then                          
    Wait 2                                                      
    Portd.0 = 1
    Waitms 100
    Portd.0 = 0
    End If
    
    
    
    
    If Pinb.0 = 1 And Pinb.1 = 0 Then                           
    Portd.1 = 1
    Waitms 1000
    Portd.1 = 0
    Wait 50
    Return
    
    End If
    
    Loop
    
    End
    


    Jeśli na pinie b.0 pojawi się stan wysoki dioda pierwsza (d.1) zaczyna migac co 50 sekund, ale jeśli zaniknie na pinie b.0 stan wysoki to musze czekac te 50s aż zacznie migac dioda 2 (D.0)

    Jak zrobic aby zaczęła ona migac odrazu bez czekania 50s??
  • #14 7971043
    polprzewodnikowy
    Poziom 26  
    Użyj któregoś z timerów.
  • #15 7971155
    wojtek9104
    Poziom 16  
    a mógł byś podac o jaką komende chodzi??

    I najlepiej przykłakd :P
  • #16 7971169
    Konto nie istnieje
    Poziom 1  
  • #17 7971185
    wojtek9104
    Poziom 16  
    To pewnie nic z tego:P
    Bo raczej sobie z tym nie poradze :)
  • #18 7971511
    ZbeeGin
    Poziom 39  
    atom1477 napisał:
    Nie ma do tego komendy.

    wojtek9104 napisał:
    Bo raczej sobie z tym nie poradze :)


    Hmmm.. Na 100%? CONFIG TIMER, ON int są pominięte w plikach pomocy? Przykładów do nich też brak? Książka red. Piotra Góreckiego też nagle zniknęła z księgarń/aukcji?
  • #19 7971569
    Konto nie istnieje
    Poziom 1  
  • #20 7974175
    janbernat
    Poziom 38  
    Ale bez Timerów to się nie da prawie nic zrobić.
    Trudno i darmo- trzeba się nauczyć.
    A jest z czego.
REKLAMA