Rendőrlámpa

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Roland
DrótVégénSzéndarab
Hozzászólások: 27
Csatlakozott: 2009. augusztus 12. szerda, 6:00

Rendőrlámpa

Hozzászólás Szerző: Roland »

Sziasztok,

A segítségeteket szeretném kérni. Most ismerkedem a bascom-mal és az AVR chipek programozásával. szeretnék készíteni egy rendőrlámpát ami úgy működik, hogy egy kapcsoló állásától függöen normál üzemmódban van vagy sárgán villog.

a normál üzemmódú működést sikerült megvaósítanim csak a váltással nem jutottam dűlőre.

valahogy így szerettem volna megoldani, de a comile-nál az if-fel valami baja van :(

Kód: Egész kijelölése

$regfile = "attiny45.dat"
$crystal = 4000000


Config Portb.2 = Input
Config PORTB.0 = Output
Config PORTB.3 = Output
Config Portb.4 = Output

Declare Sub Villog

 Do
       Reset PORTB.0
       Reset PORTB.3
       Reset Portb.4

       If Portb.2 = 1
       Then Call Villog
       Else
       End If

          PORTB.4 = 1
          Wait 5

          PORTB.0 = 1
          Wait 2

          PORTB.4 = 0
          PORTB.0 = 0
          PORTB.3 = 1
          Wait 5

          PORTB.3 = 0
          PORTB.0 = 1
          Wait 2
 Loop


 Sub Villog

       Reset PORTB.0
       Reset PORTB.3
       Reset Portb.4

       If Portb.2 = 0
       Then Return
       Else
       End If

         Portb.0 = 1
         Wait 2
         Portb.0 = 0
         Wait 2

 End Sub


End
van ötletetek, hogy hogy kéne ezt megoldani.

Bocs a kezdő kérdésért.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

if allas1=1 gosub villognormal
else
gosub sarganvillog
end if
Avatar
Roland
DrótVégénSzéndarab
Hozzászólások: 27
Csatlakozott: 2009. augusztus 12. szerda, 6:00

Hozzászólás Szerző: Roland »

érdekes a jelenség ha igaz a feltétel akkor szépen fut ha nem akkor vár 6 ciklust és megáll úgy, hogy protb.0 1 be van

, de ez lehet azért mert a kapcsoló vcc-t ad a pinb.2 nek a chip táplábáról és ha kikapcsolom akkor nem gnd re huzza a lábat hanem log a levegőbe. milyen if feltételt kéne írni erre?

és miért nem villog a sárga ciklusban a led?

Kód: Egész kijelölése

$regfile = "attiny45.dat"
$crystal = 4000000


Config Pinb.2 = Input
Config PORTB.0 = Output
Config PORTB.3 = Output
Config PORTB.4 = Output

Declare Sub Sarga
Declare Sub Normal

Do
       If Pinb.2 = 1 Then
       Waitms 10

          If Pinb.2 = 1 Then
          Gosub Normal

          Else
          Gosub Sarga

                 Sub Normal

                             Reset Portb.0
                             Reset Portb.3
                             Reset Portb.4

                             PORTB.4 = 1
                             Wait 5

                             PORTB.0 = 1
                             Wait 2

                             PORTB.4 = 0
                             PORTB.0 = 0
                             PORTB.3 = 1
                             Wait 5

                             PORTB.3 = 0
                             PORTB.0 = 1
                             Wait 2
                 End Sub Normal


                  Sub Sarga
                             Reset Portb.0
                             Reset Portb.3
                             Reset Portb.4

                             Portb.0 = 1
                             Wait 2

                             PORTB.0 = 0
                             Wait 2
                  End Sub Sarga
        End If
      End If
Loop

End

Avatar
SirLeslie
Pákabűvész
Hozzászólások: 247
Csatlakozott: 2005. április 14. csütörtök, 6:00

Hozzászólás Szerző: SirLeslie »

Kód: Egész kijelölése

$regfile = "attiny45.dat"
$crystal = 4000000

Config Pinb.2 = Input
Config PORTB.0 = Output
Config PORTB.3 = Output
Config PORTB.4 = Output

Declare Sub Sarga
Declare Sub Normal

Do
  If Pinb.2 = 1 Then
     Waitms 10
     'If Pinb.2 = 1 Then 'kétszer felesleges
     Gosub Normal
        Else
          Gosub Sarga
   End If
Loop

Sub Sarga
  Reset Portb.0
  Reset Portb.3
  Reset Portb.4
  Portb.0 = 1
  Wait 2
  PORTB.0 = 0
  Wait 2
End Sub 

Sub Normal
  Reset Portb.0
  Reset Portb.3
  Reset Portb.4
  PORTB.4 = 1
  Wait 5
  PORTB.0 = 1
  Wait 2
  PORTB.4 = 0
  PORTB.0 = 0
  PORTB.3 = 1
  Wait 5
  PORTB.3 = 0
  PORTB.0 = 1
  Wait 2
End Sub 
[/quote]

így próbáld ki.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Nana....

Láb lóg a levegőben -> ilyen TILOS!


GND....kapcsoló....Processzorláb....10k(felhúzóellenállás)....+5V
Avatar
Roland
DrótVégénSzéndarab
Hozzászólások: 27
Csatlakozott: 2009. augusztus 12. szerda, 6:00

Hozzászólás Szerző: Roland »

SirLeslie: köszi bevált a kód :D

holnap megpróbálkozok egy pwm-el

led fényerejét lépésenként növelni. Majd jelentkezem biztos, hogy kell segítség hozzá és ti olyan rendesek vagytok :D
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A forumban van egy jo par minta ra, kb. 1 hete volt....
Válasz küldése