Hallo,

De bedoeling is om op PORTA.0 een ledje constant te laten branden in onderstaande code. Hoe vertaal ik dit in Proton?

Device 16F628A
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE

opnieuw:

Toggle PORTA.1
DelayMS 500
Toggle PORTA.2

GoTo opnieuw

End

Device 16F628A
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE

High pora.0
End 

Als je dit erin zet blijft de led constant branden

En dat is HIGH PORTA.1, weer iets nieuws.
HIGH PORTA.1 betekent: maak van poort A.1 (pin 18 van een PIC16F628A) een uitgang en maak die uitgang HIGH (= hoog) (= +5V).
En aangezien de LED is aangesloten tussen PORTA.1 en +5V, gaat de LED uit. Als de LED was aangesloten tussen PORTA.1 en GND dan was de LED juist aangegaan.

Logisch dat er dus ook LOW (= laag) bestaat, die maakt de opgegeven poort een uitgang en maakt deze laag (= 0V).

Dan nog aandacht voor de instructie END.
Als je deze vergeet dan zou de PIC verder kunnen lopen door zijn (meest lege) geheugen dat na HIGH PORTA.1 komt, met onverwachte gebeurtenissen!
Vaak is END niet nodig, zoals in het allereerste voorbeeld van deze cursus (die met GOTO), de PIC zal altijd in de GOTO lus blijven en de instructie END is daar dus overbodig geplaatst.
Toch wordt aanbevolen om END altijd te plaatsen, ook al is het vaak overbodig.
END stopt het PIC programma door hem in een oneindige loop te brengen.
De poorten blijven in dezelfde stand (in- of uitgang, hoog of laag) en de PIC wordt in low power mode gezet.

Bron: Picbasic.nl cursus deel1

[Bericht gewijzigd door teunhaperen op (74%)]

Ik ken geen PROTON IDE maar gokje:

PORTA.0 = 1

Zorg er voor dat je TRIS registers goed staan.

[Bericht gewijzigd door Neen op (33%)]

Op welke poort zit het ledje wat constant moet branden ?

In geval van porta.0 kun je de onderstaande code gebruiken

Device 16F628A
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE

Porta.0 = 1

End 

hmm sneller reageren .. :P

werkt niet.
In onderstaand voorbeeld kan het ledje niet branden, want eenmaal bij Goto gaat hij naar opnieuw.
Zet ik de code in het blok tussen 'opnieuw/Goto' gaat de led uit.

Device 16F628A
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE

opnieuw:

Toggle PORTA.1
DelayMS 500
Toggle PORTA.2

GoTo opnieuw
High PORTA.0
End

Meen je dit nu? Je wil een led op PORTA.0 doen oplichten maar je komt af met een programma met PORTA.1 en PORTA.2 er in en dan nog in een toggle loop terwijl je constant de led aan wilt hebben...
Misschien dat het met wat meer context steek houdt, nu dus nog niet.

je hebt PORTA.0 _na_ een oneindige loop gezet, daar komt het programma natuurlijk nooit.

Zet de regel boven de loop.

sorry jongens, ik heb het gevonden.
ik had de (+) met de led verbonden i.p.v. van de (-).

Toch bedankt voor de snelle reactie's.....