Skocz do zawartości

Prośba o pomoc w napisaniu programu.


emix95

Pomocna odpowiedź

Witam chciałem pod atmege 8 podłączyć sharp 340 pod pinc.0 wejście od sharpa a pod b.0 diode i jak coś zauważy to się zaświeci dioda czy ma ktoś taki prosty program bo taki nie działa:

$regfile = "m8def.dat"
$crystal = 12000000                                         'definiujemy z jakim taktowaniem będzie pracował

Config Portc = Input                                        'port b  jako wejścia
      Portc = &B00000000                                   'wszędzie stan spoczynkowy-0
Config Portb = Output                                       'pprt d jako wyjścia
      Portb = &B0000000                                    'wszędzie stan spoczynkowy-0


Do                                                         'pętla nieskończona

  If Pind.0 = 1 Then                                       'jeżeli przycisk 1 wciśnięty
  Portb.0 = 1                                              'zapal diode
  Elseif Pind.1 = 1 Then                                   'jeżeli przycisk 2 wciśnięty
  Portb.0 = 0                                              'zgaś diodę
  End If                                                   'koniec bloku warunkowego

Loop                                                       'koniec pętli

End                                                         'koniec programu
Link do komentarza
Share on other sites

Witam chciałem pod atmege 8 podłączyć sharp 340 pod pinc.0 wejście od sharpa

Piszesz, że sharp jest podłączony pod pinc.0, a w programie masz:

If Pind.0 = 1 Then 
Link do komentarza
Share on other sites

If Pind.0 = 1 Then                                       'jeżeli przycisk 1 wciśnięty

   Portb.0 = 1                                              'zapal diode

   Elseif Pind.1 = 1 Then                                   'jeżeli przycisk 2 wciśnięty

   Portb.0 = 0                                              'zgaś diodę

   End If 

Na początku sprawdzasz Pind.0, potem Pind.1 (pomijam to że powinno być Pinc.0, ale o tym już napisałeś). Napisz w jednym i drugim warunku "pinc.0".

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Teraz tak to wygląda.

$regfile = "m8def.dat"
$crystal = 12000000                                         'definiujemy z jakim taktowaniem będzie pracował

Config Portc = Input                                        'port b  jako wejścia
      Portc = &B00000000                                   'wszędzie stan spoczynkowy-0
Config Portb = Output                                       'pprt d jako wyjścia
      Portb = &B0000000                                    'wszędzie stan spoczynkowy-0


Do                                                         'pętla nieskończona

  If Pinc.0 = 1 Then                                       'jeżeli przycisk 1 wciśnięty
  Portb.1 = 1
                                             'zapal diode

  End If                                                   'koniec bloku warunkowego

Loop                                                       'koniec pętli

End           
Link do komentarza
Share on other sites

Zrobiłem tak ale dioda nadal cały czas świeci

$regfile = "m8def.dat"
$crystal = 8000000                                          'definiujemy z jakim taktowaniem będzie pracował

Config Portc = Input                                        'port b  jako wejścia
      Portc = &B00000000                                   'wszędzie stan spoczynkowy-0
Config Portb = Output                                       'pprt d jako wyjścia
      Portb = &B0000000                                    'wszędzie stan spoczynkowy-0


Do                                                         'pętla nieskończona

  If Pinc.0 = 1 Then                                       'jeżeli przycisk 1 wciśnięty
  Portb.1 = 1
   Elseif Pinc.0 = 0 Then                                  'jeżeli przycisk 2 wciśnięty
  Portb.1 = 0                                              'zgaś diodę

  End If
                                        'zapal diode

                                                    'koniec bloku warunkowego

Loop
                                                     'koniec pętli

End         
Link do komentarza
Share on other sites

emix95, brakuje ci podstawowej wiedzy i widzę u ciebie kompletny brak logicznego myślenia.

To nic, że źle sprawdzasz przycisk, było już o tym wielokrotnie na tym forum, że switche zwiera się przyciskiem do masy a nie tak jak u ciebie do plusa zasilania.

Pomyśl sam przez chwilę jak twoja biedna dioda ma się świecić, jak wciskasz przycisk na moment, pojawia się na nim 1, dioda się zapala, ale za ułamek sekundy ta dioda zgaśnie bo za chwilę znowu sprawdzasz czy przycisk jest wciśnięty i jeśli nie jest to gasisz diodę. Musiałbyś trzymać przycisk cały czas wciśnięty, żeby dioda się świeciła. Tylko, że znając życie masz wszystko źle podłączone, nie do tych pinów co trzeba.

Zrób wszystko po bożemu to dostaniesz działający kod. Daj też jakieś zdjęcia w dobrej jakości tego twojego układu. Normalnie serce mi ściska jak czytam twoje posty o tym jak wszystko ci nie działa, pomimo, że wielokrotnie dostawałeś już odpowiedzi na swoje pytania.

Link do komentarza
Share on other sites

Ogólnie chodzi o to że jak sharp wykryje coś to dioda się zapala!

Czyli potrzebuje taki kod

if "czujnik wykrywa" then

"dioda świeci"

if"czujnik nie wykrywa" then

"dioda nie świeci"

Link do komentarza
Share on other sites

Bez obrazy ale weź się w garść. Jest to max 5 linijek kodu. Ściągnij sobie polskiego helpa do bascoma i poczytaj poradniki na forum itp. Bo jeśli już na tym etapie potrzebujesz gotowca to nie wróżę nic dobrego.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.