Shock Media

Navigatie

pic stand schakelaar onthouden

Forum > Ontwikkeling > pic stand schakelaar onthouden
Naam Bericht
dwang

Hallo ik ben nieuw met het programmeren van pic ic's

Ik wil de stand van een schakelaar onthouden zodat hij bij het aan/uitzetten een puls geeft van 500ms op een uitgang van een 16F628a

hoe programmeer ik dat in picbasic?

alvast bedankt.
bassie-

Een variabele maken met bit grote. En dan steeds 1 verhogen. Omdat het een bit is telt hij niet verder dan 1.
Voorbeeldje

de knop is normaal uit dus 0, dan druk je hem in de knop is aan dus 1. Dan druk je weer dus is de knop uit en 0

Ik ga er vanuit dat je het nu over een momentschakelaartje (goede naam?) hebt. Of heb je gewoon eentje die aan of uit blijft. Dan is het makkelijker, gewoon kijken of je poort 0 of 1 is (afhankelijk van of de schakelaar tussen de Vcc of Vss zit)
pros

Ik denk dat de TS dat laatste (een aan/uit schakelaar) bedoelt. Met een AVR zou ik het afhandelen met een Pin-change-interrupt (en de broodnodige ontdendering-routine). Dan hoeft de µC helemaal niets te onthouden.
Een stijgtijd van 1V/nS komt overeen met 3600000000000V/h. Pros Robaer (1995)
Frits Kieftenbelt
Honourable member

Als 'dwang' nu iets duidelijker aangeeft wat ie heeft, een pulsschakelaar (maakcontact) of aan/uit schakelaar.

Een voorbeeld van de pulsschakelaar staat in cursus deel 2, het tweede PIC Basic programmavoorbeeld.
Het indrukken van S3 geeft een puls van 500mSec, ook als je hem langer of korter indrukt, de puls blijft 500mSec, te zien aan LED3 (zie ook schema aldaar).

Cursus deel 2: www.picbasic.nl/beginners2.htm

EDIT:
quote:
Op 14 augustus 2008 21:33:10 schreef pros:
Met een AVR zou ik het afhandelen met een Pin-change-interrupt (en de broodnodige ontdendering-routine). Dan hoeft de µC helemaal niets te onthouden.

Het is een beginner Pros (zelfs zijn allereerste vraag hier op het forum, dus nog even wachten met interrupts )
[Bericht gewijzigd door Frits Kieftenbelt op 14 augustus 2008 21:48:05]
Ohm sweet Ohm l www.picbasic.nl
hadv
Golden Member

Of wil TS ook de stand van de schakelaar onthouden als de pic uit is gezet. In dat geval wordt het EEProm schrijven.
dwang

Alvast bedankt voor de snelle reacties.

En Frits bij deze wil ik je bedanken voor de basicpic-cursus voor beginners.

Even terug op mijn vraag.

Wat ik wil gaan doen is het volgende,

Op mijn werk hebben we vier telefoon toestellen die in een groep zitten.
Op het toestel zit een ledje die aangeeft dat hij in of uit de groep is.
Door nu een optocoupler parralel te koppelen op het ledje in het toestel kan ik de pic schakelen.
De pic wil ik namelijk een puls laten generen die een relais kort aan en weer uit zet bij elke verandering van het ledje op het toestel.
Het relais schakelt weer een led badge warop je kan zien welk toestel in de groep zit en welke niet.

De ledbadge heeft een korte puls nodig om aan of uit te gaan.
antwoord op jullie vraag is,
ik heb een schakelaar die aan is of uit.

Ik heb al het een en ander geschreven in basic met proton.
Dit kan ik eventueel wel opsturen per mail.
heb het nog niet kunnen testen, daar mijn pic's (16F628a) morgen binnen komen hoop ik.

zo en nu weer verder lezen in de basicpic cursus.
[Bericht gewijzigd door dwang op 14 augustus 2008 22:45:14]
pros

quote:
Op 14 augustus 2008 22:41:19 schreef dwang:
Op mijn werk hebben we vier telefoon toestellen die in een groep zitten.
Op het toestel zit een ledje die aangeeft dat hij in of uit de groep is.
Door nu een optocoupler parralel te koppelen op het ledje in het toestel kan ik de pic schakelen.
De pic wil ik namelijk een puls laten generen die een relais kort aan en weer uit zet bij elke verandering van het ledje op het toestel.
Het relais schakelt weer een led badge warop je kan zien welk toestel in de groep zit en welke niet.

De ledbadge heeft een korte puls nodig om aan of uit te gaan.

Dat lijkt me geen goed idee. De minste stoorpuls kan tot gevolg hebben dat de schakeling net het tegenovergestelde doet dan wat je voor ogen hebt. De PIC zelve vormt geen probleem, al kan je hier gewoon een XOR-poort + monoflop inzetten. Maar om die led-badge in fase te houden met het telefoontoestel, enkel afgaande op op- of neergaande pulsen, is IMHO vragen om moeilijkheden.
Een stijgtijd van 1V/nS komt overeen met 3600000000000V/h. Pros Robaer (1995)
dwang

Hallo Pros,

Bedankt voor het meedenken .
Maar de ledbadge komt niet direkt op het toestel.
Alleen de optocoupler en die zit er al een poosje op het toestel zonder problemen schakelt hij een ledje op dit moment.
dwang

Hallo,

Ben uit mijn probleem gekomen met de volgende commando set

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

DEVICE 16F628A ; Type pic

CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF

; 76543210 <<<Een hulpregeltje
PORTA = %11111111 ; Alle niveaus van PORTA eerst laag maken
PORTB = %00000000 ; Alle niveaus van PORTB eerst laag maken
TRISA = %00000000 ; Alle 8 poorten van PORTA zijn uitgangen
TRISB = %11111111 ; Alle 8 poorten van PORTB zijn ingangen

ALL_DIGITAL TRUE ; Alle poorten zijn digitaal
CLEAR ; Wist alle geheugen

SYMBOL Tst1 = PORTB.0 ; Toestel 1 zit op poort A.0
SYMBOL Tst2 = PORTB.1 ; Toestel 2 zit op poort A.1
SYMBOL Tst3 = PORTB.2 ; Toestel 3 zit op poort A.2
SYMBOL Tst4 = PORTB.3 ; Toestel 4 zit op poort A.3
SYMBOL Display1 = PORTA.0 ; Display 1 zit op poort B.0
SYMBOL Display2 = PORTA.1 ; Display 2 zit op poort B.1
SYMBOL Display3 = PORTA.2 ; Display 3 zit op poort B.2
SYMBOL Display4 = PORTA.3 ; Display 4 zit op poort B.3


SYMBOL OFF = 0 ; OFF

DIM A1 AS BIT ;GEHEUGEN PLAATS IVM TOESTAND SCHAKELAAR
DIM A2 AS BIT
DIM A3 AS BIT
DIM A4 AS BIT


PORTB_PULLUPS ON


Telefoon: ; Hoofd programmanaam
WHILE 1=1

IF Tst1 = OFF THEN
IF A1 = 0 THEN
LOW Display1
DELAYMS 250
HIGH Display1
A1 = 1
ENDIF
ELSE
IF A1 = 1 THEN
LOW Display1
DELAYMS 250
HIGH Display1
A1 = 0
ENDIF
ENDIF

WEND

END
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

misschien heeft iemand hier nog wat aan.



groetjes,

Djihfhoe Wang
[Bericht gewijzigd door dwang op 17 augustus 2008 16:53:57]
Zoeken in topic