Skocz do zawartości

Prośba o pomoc w napisaniu programu.


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
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 
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".

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           

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         

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.

Te przycisk itd to z czego innego zapomniałem usunąć a jak byś czytał to byś wiedział że chodzi o sharp 340k!

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"

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.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...