Ik ben bezig met een printje.
Welke geluid maakt als s1 en of s2 actief is.
alles werkt naar behoren, echter nu wil ik dus een tijd instellen
dat en geluid 1 en geluid 2 , in combi of niet 1 keer hoorbaar is
en vervolgens bijv. 30 min wacht en dan weer 1 keer hoorbaar is. indien s1 en of s2 nog actief is.
ik heb van alles geprobeerd in PICBASIC maar ik krijg het niet werkend.
mijn bedoeling is wel dan als halverwege s1 of s2 er bij komt dat hij dit wel ziet en actie onderneemt.
je ziet 2 ifs staan de eerst klopt in de tijd, echter als ik ga vergroten word de tijd niet langer. ik weet dat dit een slordige manier van programmeren is, maar tja.
Schema van de print niet toegevoegd, want alles reageert zoals verwacht, het hangt nu aan de software.
tips zijn welkom.
code:
'2
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 26-6-2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
DEVICE 16F628A ;Gebruik een 16F628A type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
xtal = 20; 1000 miliseconde = 1 seconde
ALL_DIGITAL TRUE ;Alle ingangen digitaal
;Poortnamen
SYMBOL S1 = PORTa.1 ; Stroboscoop
SYMBOL S2 = PORTa.0 ; Omvormer
SYMBOL LED = PORTA.2 ; Led schakelaar STROBOSCOOP
dim A as word
dim B as word
dim WACHTTIJD as word ' MOET NOG VERANDERD WORDEN DAT DIT MOGELIJK GEEN WORD MOET ZIJN.
dim DD as word
;Variabelen declareren
;WORD
DIM Hertz AS WORD ;'Hertz' is de variabele toonhoogte (frequentie in Hertz)
; 76543210
TRISB = %11110111 ;PORTB.3 is uitgang voor PWM geluid signaal
PORTB_PULLups ON ;Activeer ingebouwde PORTB pull-up weerstanden (voor toets S1)
CLEAR ;Wis alle RAM geheugen
HPWM 1, 0, 0 ;Reset de CCP/PWM module (Op 0% = constant laag)
a = 0
b = 0
dd = 10
WACHTTIJD = 0
Main:
' for x = 0 to 70000 ' 15000 = 1.15min
if s1 = 1 and a=0 then goto start1
if s2 = 1 and b=0 Then goto start2
' if s1 = 1 then toggle led1
if s1 = 0 then A=0
if s2 = 0 then b=0
delayms 1
WACHTTIJD = WACHTTIJD + 1
'if WACHTTIJD = 375000 then a=0:b=0:WACHTTIJD=0 ' 4.30 min
if WACHTTIJD = 11250000 then a=0:b=0:WACHTTIJD=0 ' 15 min
''next
' a=0
' b=0
goto main
Start1:
hertz=250
hpwM 1, 127, Hertz
delayms dd
HPWM 1, 0, 0
delayms dd
hpwM 1, 127, Hertz
delayms dd
HPWM 1, 0, 0
delayms dd
a=1
goto main
Start2:
hertz=500
hpwM 1, 127, Hertz
delayms dd
HPWM 1, 0, 0
delayms dd
hpwM 1, 127, Hertz
delayms dd
HPWM 1, 0, 0
delayms dd
b=1
goto main
END
[Bericht gewijzigd door spacegremlin op donderdag 25 november 2021 00:31:53 (15%)