Problemet med programmet under Attiny2313

M

Mietq

Guest
Hej.
Jeg skrev en nylig programmet ved.vejledning (selvfølgelig)
på den del af "dioda.com.pl" og zaprogramowałem UC.Monteret på et køretøj, som begiver sig på en tank.Da de to sensorer anvendes krańcówki.
Programmet blev kørt så hvis der ikke er signal om eventuelle krańcówce går fremad.Hvis signalet er til højre for at dreje til venstre osv.
Desværre, som det var at være i teorien.Øjeblikket programmet fungerer så hjulet er spinding en måde, og efter en tid ene part trækker sig,
og derefter den anden part, og derefter igen at gå fremad, selv om krańcówek ikke engang tilsluttet.

Her
er programmet:
Citat:

$ Regfile = "attiny2313.dat"Config PORTB = Input 'havn som et punkt b

PORTB = & B11111111 'hvilende tilstand af alle-1

Config = Portd Output 'Port D som output

Portd = & B0000000 'hvilende tilstand af alle-0ForWaitms 10

Hvis Pinb.0 Og Pinb.1 = 0 = 0 Derefter

Gosub Eat

Waitms 10

Elseif Pinb.0 Og Pinb.1 = 1 = 0 Derefter

Gosub Ret

Waitms 10

Elseif Pinb.0 Og Pinb.1 = 0 = 1 Derefter

Gosub Venstre

Waitms 10

Elseif Pinb.0 Og Pinb.1 = 1 = 1 Derefter

Gosub flygte

End HvisSpise:

Portd.0 = 1

Portd.1 = 0

Portd.2 = 1

Portd.3 = 0

Waitms 1000

ReturHøjre:

Portd.0 = 0

Portd.1 = 1

Portd.2 = 1

Portd.3 = 0

Waitms 1000

ReturVenstre:

Portd.0 = 1

Portd.1 = 0

Portd.2 = 0

Portd.3 = 1

Waitms 1000

ReturUndslipper:

Portd.0 = 0

Portd.1 = 1

Portd.2 = 0

Portd.3 = 1

Waitms 2000

Portd.0 = 1

Portd.1 = 0

Waitms 1000

ReturLoopEnde
 
intrukcje sætte den i en løkke, og ikke uden grund den udfører

 
Måske er det fordi du har givet sub'y i loop?Flytte den til sidst i programmet, skal du være fint.

/ Ubiegnięty:)

 
Den forbedrede, men desværre ikke hjælpe.
Vi er bare en betingelse og sub'y:
Code:

ForWaitms 10

Hvis Pinb.0 Og Pinb.1 = 0 = 0 Derefter

Gosub Eat

Waitms 10

Elseif Pinb.0 Og Pinb.1 = 1 = 0 Derefter

Gosub Ret

Waitms 10

Elseif Pinb.0 Og Pinb.1 = 0 = 1 Derefter

Gosub Venstre

Waitms 10

Elseif Pinb.0 Og Pinb.1 = 1 = 1 Derefter

Gosub flygte

End HvisLoopSpise:

Portd.0 = 1

Portd.1 = 0

Portd.2 = 1

Portd.3 = 0

Waitms 1000

ReturHøjre:

Portd.0 = 0

Portd.1 = 1

Portd.2 = 1

Portd.3 = 0

Waitms 1000

ReturVenstre:

Portd.0 = 1

Portd.1 = 0

Portd.2 = 0

Portd.3 = 1

Waitms 1000

ReturUndslipper:

Portd.0 = 0

Portd.1 = 1

Portd.2 = 0

Portd.3 = 1

Waitms 2000

Portd.0 = 1

Portd.1 = 0

Waitms 1000

Retur
 
Jeg vil helt sikkert wywalil Waitms 10.
Giv nogle flere oplysninger og filmen ikke talt meget for mig.

 
På filmiku, der indgår i de 25 sekunder det system, og efter en tid et par afslutninger begynder at ændre sig, selv om ingen af krańcówek ikke give et signal til UC.
Det var kun i 34 sekunder,
og tryk derefter på krańcówkę.Ifølge hverken af resultaterne ændrer ikke puki ikke få et signal udefra.dvs:
Code:

Hvis Pinb.0 Og Pinb.1 = 0 = 0 Derefter

Gosub Eat

.

.

.

Spise:

Portd.0 = 1

Portd.1 = 0

Portd.2 = 1

Portd.3 = 0

Waitms 1000

Retur
 
Glemt medmindre staten er ikke aktiv ved indgange er et logisk "1", programmet udfører hele tiden hoppe til etiketten "løbe ud".Sensorer om det presserende behov for at give en status på "0" i havnen indgangen (der indeholder masse).

 
hvad en kollega sagde,
men vil indsætte koden.Du har set armbøjninger

 
Thanks very much!Det fungerer efter behov.Nu
er det kun små rettelser og vil være perfekt.pozdro

 

Welcome to EDABoard.com

Sponsor

Back
Top