Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • jednoduchy semafor s tlacitkom

jednoduchy semafor s tlacitkom

Moderátori: psichac, Moderátori

jednoduchy semafor s tlacitkom

Odosla┼ąod mato1168 » 10 Jan 2014, 23:39

skusal som naprogramovat v bascome semafor ten funguje ako ma ale chcel som tam pridat este tlacitko a po jeho stlaceni zacne blikat zlta led a po opatovnom stlaceni zacne fungovat semafor normalne ale s tymto mam problem tu je co som naprogramoval
mikroprocesor mam atmega8a-16PU
K├│d: Vybra┼ą v┼íetko
$regfile = "m8def.dat"
$crystal = 1000000

Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output

''''''''''''''' HLAVNI PROGRAM ''''
Do
Portc.0 = 1
Portc.1 = 0
Portc.2 = 0
Waitms 3000
Portc.0 = 1
Portc.1 = 1
Portc.2 = 0
  Waitms 1500
Portc.0 = 0
Portc.1 = 0
Portc.2 = 1
  Waitms 6000
Portc.0 = 0
Portc.1 = 1
Portc.2 = 0
Waitms 1300
Portc.0 = 1
Portc.1 = 0
Portc.2 = 0
Loop

''''''''''''''' KONEC HLAVNIHO PROGRAMU ''''
End


a tu je kod s tlacitkom
K├│d: Vybra┼ą v┼íetko
$regfile = "m8def.dat"
$crystal = 1000000

Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Input
''''''''''''''' HLAVNI PROGRAM ''''
Do
If Portc.3 = 1 Then

Portc.0 = 1
Portc.1 = 0
Portc.2 = 0
Waitms 3000
Portc.0 = 1
Portc.1 = 1
Portc.2 = 0
  Waitms 1500
Portc.0 = 0
Portc.1 = 0
Portc.2 = 1
  Waitms 6000
Portc.0 = 0
Portc.1 = 1
Portc.2 = 0
Waitms 1300
Portc.0 = 1
Portc.1 = 0
Portc.2 = 0
Loop
End If
Portc.3 = 0
  Do
Portc.1 = 1

Waitms 1000
Portc.1 = 0

loop
''''''''''''''' KONEC HLAVNIHO PROGRAMU ''''
End

vedel by mi niekto poradit kde je v tom druhom kode chyba aby mi to fungovalo ze po stlaceni tlacitka sa rozblika zlta led a po znovu stlaceni tlacitka pokracuje prva cast programu teda normalna funkcia semaforu
mato1168
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 371
Vek: 23.67
Zalo┼żen├Ż: 22.04.2012
Bydlisko: Pie┼í┼ąany
Karma: 0

Re: jednoduchy semafor s tlacitkom

Odosla┼ąod Lucky_G » 16 Jan 2014, 12:43

Mas tam chybne prehodene uzavretie podmienky END IF az po LOOP:

K├│d: Vybra┼ą v┼íetko
DO
IF ... THEN ...

LOOP
END IF


A potom ti to prejde do nekonecnej slucky blikania oranzovej, z ktorej nie je ziadny navrat / odskok, navyse to blikanie bude viditelne ako trvale svietenie, kedze vystup sa zmeni na 0 iba na nevidielne kratky okamih, mal by si tam doplnit aj druhy krat Waitms 1000 po zmene na 0:
K├│d: Vybra┼ą v┼íetko
  Do
Portc.1 = 1

Waitms 1000
Portc.1 = 0

loop


A na citanie stavu tlacidla doporucujem pouzit radsej PINC.3 ako PORTC.3. Ak tlacidlo spina PORTC.3 k GND, tak si v uvode nastav interny Pull-up a citaj stav PINC.3:
K├│d: Vybra┼ą v┼íetko
DDRC.3 = 0     'Input
PORTC.3 = 1   'Pull-up zapnuty
Lucky_G
Okoloid├║ci
Okoloid├║ci
Pr├şspevky: 2
Zalo┼żen├Ż: 10.01.2014
Karma: 0

Re: jednoduchy semafor s tlacitkom

Odosla┼ąod sonikmartin » 16 Jan 2014, 12:55

Ja bych to udelal takle

K├│d: Vybra┼ą v┼íetko
$regfile = "m8def.dat"
$Crystal=1000000
$hwstack=40
$swstack=16
$framesize=32

Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Input

Declare Sub Norm
Declare Sub Blik
Declare Sub Klop

Dim Mem As Bit

''''''''''''''' HLAVNI PROGRAM ''''
Do

Debounce Pinc.3 , 0 , Klop , Sub

   If Mem = 1 Then
      Norm
   Else
      Blik
   End If

loop
''''''''''''''' KONEC HLAVNIHO PROGRAMU ''''
End


Sub Norm

   Portc.0 = 1
   Portc.1 = 0
   Portc.2 = 0
      Waitms 3000
   Portc.0 = 1
   Portc.1 = 1
   Portc.2 = 0
      Waitms 1500
   Portc.0 = 0
   Portc.1 = 0
   Portc.2 = 1
      Waitms 6000
   Portc.0 = 0
   Portc.1 = 1
   Portc.2 = 0
      Waitms 1300
   Portc.0 = 1
   Portc.1 = 0
   Portc.2 = 0

End Sub

Sub Blik
   Portc.1 = 0
      Waitms 1000
   Portc.1 = 1
      Waitms 1000
End Sub

Sub Klop

   If Mem = 0 Then
      Mem = 1
   Elseif Mem = 1 Then
      Mem = 0
   End If

End Sub
sonikmartin
Obr├ízok pou┼ż├şvate─ża
Pokro─Źil├Ż ─Źlen
Pokro─Źil├Ż ─Źlen
Pr├şspevky: 554
Vek: 31.4
Zalo┼żen├Ż: 05.11.2010
Bydlisko: Litomyšl
Karma: 13

Re: jednoduchy semafor s tlacitkom

Odosla┼ąod mato1168 » 23 Jan 2014, 10:55

dakujem za rady dnes to skusim
mato1168
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 371
Vek: 23.67
Zalo┼żen├Ż: 22.04.2012
Bydlisko: Pie┼í┼ąany
Karma: 0

Re: jednoduchy semafor s tlacitkom

Odosla┼ąod mato1168 » 02 Feb 2014, 18:14

tak program som vyskusal a funguje ale teraz mam dalsi problem potrebujem aby sa po stlaceni tlacitka rozblikala led ale nejde mi to bud ostane svietit alebo blika len ak drzim tlacitko stlacene vedeli by ste mi poradit s tymto?
program je
K├│d: Vybra┼ą v┼íetko
$regfile = "m8def.dat"
$crystal = 1000000
Config Portc.0 = Output
Config Portc.1 = Input


''''''''''''''' HLAVNI PROGRAM ''''
  Do
If Pinc.1 = 0 Then
Do
Portc.0 = 1
Waitms 1000
Portc.0 = 0
Loop
End If
Loop



''''''''''''''' KONEC HLAVNIHO PROGRAMU ''''
End

dakujem za rady
mato1168
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 371
Vek: 23.67
Zalo┼żen├Ż: 22.04.2012
Bydlisko: Pie┼í┼ąany
Karma: 0

Re: jednoduchy semafor s tlacitkom

Odosla┼ąod smotek7 » 02 Feb 2014, 19:10

1. za Portc.0 = 0
terba Waitms 1000
2. chces ak stlacis tlacitko aby led stale blikala a opatovnom stlaceni zhasla?
Nemus├şm vede┼ą v├íhu elektr├│nu ak chcem zasp├íjkova┼ą tranzistor.
smotek7
Pokro─Źil├Ż ─Źlen
Pokro─Źil├Ż ─Źlen
Pr├şspevky: 521
Vek: 40.15
Zalo┼żen├Ż: 08.08.2011
Bydlisko: PN
Karma: 4

Re: jednoduchy semafor s tlacitkom

Odosla┼ąod mato1168 » 02 Feb 2014, 19:29

Diki za radu je mi jedno ci po opatovnom stlaceni zhasne alebo nie rob├şm so spolu┼żiakom jeden projekt bude tam viac lediek a viac tlacitiek a po.stla─Źen├ş niakeho tlacitka.sa.rozblikaju alebo rozsvietia kokretne ledky a chcem.tam dat este tlacitko na reset ze.ked ho.stlacim vsetko zhasne
mato1168
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 371
Vek: 23.67
Zalo┼żen├Ż: 22.04.2012
Bydlisko: Pie┼í┼ąany
Karma: 0


Nasp├Ą┼ą na Bascom

Kto je pr├ştomn├Ż

U┼ż├şvatelia prezeraj├║ci si toto f├│rum: ┼Żiadny registrovan├Ż pou┼ż├şvate─ż a 1 hos┼ą.

Forums ©
Autor str├ínky je Ondrej Z├ívodsk├Ż(zawin), o graficky design sa star├í ─Żubo┼í Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
─îas potrebn├Ż k spracovaniu str├ínky 0.34 sek├║nd