Da's meer iets voor een Picbasic specialist...
Met losse bits wordt de code wel veel langer; ik weet niet of dat nog in de lite versie past...
Special Member
Da's meer iets voor een Picbasic specialist...
Met losse bits wordt de code wel veel langer; ik weet niet of dat nog in de lite versie past...
Is er hier ook iemand wie gespecialiseerd is in picbasic
Want ik ben ook met zoiets bezig maar misschien kunnen we elkaar wel assisteren. Dus als sjoerd contact met mij op wil nemen
[Bericht gewijzigd door Henry S. op vrijdag 1 juli 2016 20:40:50 (53%)
Beste Klaas
Dit topic heb ik geopend voor een simpel
Programma, ik snap dat u mij wil helpen.
maar om op dit topic te vragen als er een
Picbasic specialist is, hoeft niet van mij, dan kunt u beter een eigen topic openen wat aan uw
Wensen voldoet
Hallo
Nou het was maar gunst ik ben ook bezig met dat soort dingen als het tenminste voor een spel is kijk maar eens
Bij krediet schakeling dat is alvast het begin.
Voor mij dan. Met dank aan mgp
Je hoeft mij geen u te noemen ik ben nog jonger als u?
Special Member
Als je eerst eens wat meer info geeft, wat zijn bijv. de luiken en wat moet het precies gaan doen?
Hallo
In even terug te komen op het programma van
Arco. Kan dit over typen en gaat met s1 dan luik1 open en met s2 Luik 2, enz
Plus de andere dingen.
Special Member
Is een quick&dirty manier, maar doet wat je wilt. (als de luiken en schakelaars zitten aangesloten zoals ik zei. Moet alleen misschien nog wat getweaked voor Picbasic)
Als de materie nog onbekend is, is het sterk aan te raden om zo simpel mogelijk te beginnen.
Gewoon eerst code schrijven om alleen een ledje te laten knipperen, daarna een schakelaartje erbij om dat te stoppen, en zo langzaam uitbreiden.
Je loopt anders tegen te veel problemen te gelijk aan.
Picbasic.nl bied genoeg info om hier een tijdje zoet mee te zijn.
Code over typen waarvan je niet snapt hoe het werkt, doe je alleen als je iets snel aan het werk wilt hebben, en er daarna niet meer naar kijkt.(en maar hopen dat het überhaupt werkt)
Lambiek
Als ik alles nog eens goed uitleg kun
Je me dan helpen aan een goede duidelijke code
Arco niet dat uw code niet goed is maar
Een beetje dirty zei u.
Special Member
Quick&dirty is gewoon een uitdrukking; er is niks dirty aan...
Op deze manier kun je met veel minder code hetzelfde doen als wanneer je het bit-voor-bit doet. Ik heb er nog wat commentaar bij gezet.
Special Member
Op 30 juni 2016 20:34:39 schreef electronicfantasy:
Als ik alles nog eens goed uitleg kun
Je me dan helpen aan een goede duidelijke code
Als je wil mag je een mailtje sturen, mijn adres staat bij mijn gegevens.
Maar ik kan niet garanderen dat het in 50 regels past.
Heb je die van Arco al geprobeerd?
Beste lambiek
Ik ga alles goed op de mail zetten ( duidelijk)
Ik ben toch van plan om de volledige
Versie te kopen en dan kan het misschien
Ook wel met een 16f877 deze heeft flink
Veel pinnen in de toekomst wel handig.
alvast bedankt dat u mij wil helpen
Arco ook bedankt trouwens ik heb hem nog
Niet geprobeerd
Special Member
Ik heb nog niets ontvangen.
EDIT:
Het is binnen.
[Bericht gewijzigd door Lambiek op vrijdag 1 juli 2016 12:09:26 (34%)
Topic is geslaagd
lambiek heeft voor mij een code geschreven
???
Overleden
Jammer dat dit via de mail gegaan is, zo leert niemand er iets van , en lijkt me het doel van een forum voorbij te schieten
Special Member
Je hebt wel een beetje gelijk. Maar dan zetten we het toch gewoon hier neer.
pic basic code:
'* Name : ELEKTRONISCH KNIKKERSPEL.
'* Author : H van Zwieten.
'* Notice : Copyright (c) 2016 H.v.Z.
'* : All Rights Reserved
'* Date : 1-7-2016
'* Version : 1.0
'* Notes :
Device 16F887 ; Processor type
Xtal 10 ; Cristal 10Mhz
Asm ; Config settings
CONFIG_REQ
__CONFIG _CONFIG1, HS_OSC & WDT_OFF & DEBUG_OFF & FCMEN_OFF & LVP_OFF & IESO_OFF & BOR_OFF & CPD_OFF & CP_OFF & MCLRE_OFF & PWRTE_ON
__CONFIG _CONFIG2, WRT_OFF & BOR40V
EndAsm
All_Digital true ; Alle poorten digitaal
Symbol LUIK_1 = PORTA.0 ; Uitgang luik - 1
Symbol LUIK_2 = PORTA.1 ; Uitgang luik - 2
Symbol LUIK_3 = PORTA.2 ; Uitgang luik - 3
Symbol LUIK_4 = PORTA.3 ; Uitgang luik - 4
Symbol LAMP = PORTA.5 ; Uitgang lamp
Symbol LOSKLEP = PORTE.0 ; Uitgang losklep
Symbol BUIS_1 = PORTB.0 ; Ingang detectie buis - 1
Symbol BUIS_2 = PORTB.1 ; Ingang detectie buis - 2
Symbol BUIS_3 = PORTB.2 ; Ingang detectie buis - 3
Symbol BUIS_4 = PORTB.3 ; Ingang detectie buis - 4
Symbol KEUZE_SCHAK = PORTB.4 ; Ingang keuzeschakelaar menu
Symbol EINDSCHAK_KLEP = PORTB.5 ; Ingang eindschakelaar losklep
Symbol WACHT_IR_DETECTIE = 250 ; Wachttijd lezen ir detectie
Dim BIT_BUIS_1 As Bit ; Variabele bit buis - 1
Dim BIT_BUIS_2 As Bit ; Variabele bit buis - 2
Dim BIT_BUIS_3 As Bit ; Variabele bit buis - 3
Dim BIT_BUIS_4 As Bit ; Variabele bit buis - 4
DelayMS 500 ; Wacht 0.5 sec
Clear ; Wis geheugen
;543210 ; Hulpregel poort A
PORTA = %000000 ; Maak poort A laag
TRISA = %000000 ; Poort_A I/O
;543210 ; Hulpregel poort B
PORTB = %000000 ; Maak poort B laag
TRISB = %111111 ; Poort_B I/O
;76543210 ; Hulpregel poort C
PORTC = %00000000 ; Maak poort C laag
TRISC = %00000000 ; Poort_C I/O
;76543210 ; Hulpregel poort D
PORTD = %00000000 ; Maak poort D laag
TRISD = %00000000 ; Poort_D I/O
;210 ; Hulpregel poort E
PORTE = %000 ; Maak poort E laag
TRISE = %000 ; Poort_E I/O
;76543210 ; Hulpregel analoog
ADCON0 = %00000001 ; ADCON0 register analoog
;543210 ; Hulpregel analoog poort_B
ANSELH = %000000 ; ANSEL register analoog poort_B
;--------------------------------------
; VARIABELE EN INGANGEN OP NUL ZETTEN.
;--------------------------------------
BIT_BUIS_1 = 0
BIT_BUIS_2 = 0
BIT_BUIS_3 = 0
BIT_BUIS_4 = 0
LUIK_1 = 0
LUIK_2 = 0
LUIK_3 = 0
LUIK_4 = 0
LAMP = 0
LOSKLEP = 0
;-------------------------------------
; KEUZE MENU EEN LUIK OF TWEE LUIKEN.
;-------------------------------------
MENU:
BIT_BUIS_1 = 0
BIT_BUIS_2 = 0
BIT_BUIS_3 = 0
BIT_BUIS_4 = 0
If KEUZE_SCHAK = 0 Then
GoSub EEN_LUIK
EndIf
If KEUZE_SCHAK = 1 Then
GoSub TWEE_LUIKEN
EndIf
GoTo MENU
;--------------------------------------------------------------------------
; PROGRAMMALUS BUIS1 - LUIK1, BUIS2 - LUIK2, BUIS3 - LUIK3, BUIS4 - LUIK4.
;--------------------------------------------------------------------------
EEN_LUIK:
If BUIS_1 = 1 Then
BIT_BUIS_1 = 1
DelayMS WACHT_IR_DETECTIE
EndIf
If BIT_BUIS_1 = 1 And BUIS_1 = 1 Then
LAMP = 1
LOSKLEP = 1
BIT_BUIS_1 = 0
EndIf
If BUIS_1 = 0 Then
BIT_BUIS_1 = 0
EndIf
If EINDSCHAK_KLEP = 1 Then
LUIK_1 = 1
BIT_BUIS_1 = 0
DelayMS 1500
LOSKLEP = 0
LUIK_1 = 0
GoTo KLEP_DICHT
EndIf
If BUIS_2 = 1 Then
BIT_BUIS_2 = 1
DelayMS WACHT_IR_DETECTIE
EndIf
If BIT_BUIS_2 = 1 And BUIS_2 = 1 Then
LAMP = 1
LOSKLEP = 1
BIT_BUIS_2 = 0
EndIf
If BUIS_2 = 0 Then
BIT_BUIS_2 = 0
EndIf
If EINDSCHAK_KLEP = 1 Then
LUIK_2 = 1
BIT_BUIS_2 = 0
DelayMS 1500
LOSKLEP = 0
LUIK_2 = 0
GoTo KLEP_DICHT
EndIf
If BUIS_3 = 1 Then
BIT_BUIS_3 = 1
DelayMS WACHT_IR_DETECTIE
EndIf
If BIT_BUIS_3 = 1 And BUIS_3 = 1 Then
LAMP = 1
LOSKLEP = 1
BIT_BUIS_3 = 0
EndIf
If BUIS_3 = 0 Then
BIT_BUIS_3 = 0
EndIf
If EINDSCHAK_KLEP = 1 Then
LUIK_3 = 1
BIT_BUIS_3 = 0
DelayMS 1500
LOSKLEP = 0
LUIK_3 = 0
GoTo KLEP_DICHT
EndIf
If BUIS_4 = 1 Then
BIT_BUIS_4 = 1
DelayMS WACHT_IR_DETECTIE
EndIf
If BIT_BUIS_4 = 1 And BUIS_4 = 1 Then
LAMP = 1
LOSKLEP = 1
BIT_BUIS_4 = 0
EndIf
If BUIS_4 = 0 Then
BIT_BUIS_4 = 0
EndIf
If EINDSCHAK_KLEP = 1 Then
LUIK_4 = 1
BIT_BUIS_4 = 0
DelayMS 1500
LOSKLEP = 0
LUIK_4 = 0
GoTo KLEP_DICHT
EndIf
Return
GoTo EEN_LUIK
;-------------------------------------------------------
; PROGRAMMALUS TWEE LUIKEN BUIS1 - LUIK1, BUIS2 - LUIK2.
; BUIS3 - LUIK3, BUIS4 - LUIK4, VOOR DE GROTE PRIJZEN.
;-------------------------------------------------------
TWEE_LUIKEN:
If BUIS_1 = 1 Then
BIT_BUIS_1 = 1
DelayMS WACHT_IR_DETECTIE
EndIf
If BUIS_2 = 1 Then
BIT_BUIS_2 = 1
DelayMS WACHT_IR_DETECTIE
EndIf
If BIT_BUIS_1 = 1 And BUIS_1 = 1 Then
If BIT_BUIS_2 = 1 And BUIS_2 = 1 Then
LAMP = 1
LOSKLEP = 1
BIT_BUIS_1 = 0
BIT_BUIS_2 = 0
EndIf
EndIf
If BUIS_1 = 0 And BUIS_2 = 0 Then
BIT_BUIS_1 = 0
BIT_BUIS_2 = 0
EndIf
If EINDSCHAK_KLEP = 1 Then
LUIK_1 = 1
LUIK_2 = 1
BIT_BUIS_1 = 0
BIT_BUIS_2 = 0
DelayMS 1500
LOSKLEP = 0
LUIK_1 = 0
LUIK_2 = 0
GoTo KLEP_DICHT
EndIf
If BUIS_3 = 1 Then
BIT_BUIS_3 = 1
DelayMS WACHT_IR_DETECTIE
EndIf
If BUIS_4 = 1 Then
BIT_BUIS_4 = 1
DelayMS WACHT_IR_DETECTIE
EndIf
If BIT_BUIS_3 = 1 And BUIS_3 = 1 Then
If BIT_BUIS_4 = 1 And BUIS_4 = 1 Then
LAMP = 1
LOSKLEP = 1
BIT_BUIS_3 = 0
BIT_BUIS_4 = 0
EndIf
EndIf
If BUIS_3 = 0 And BUIS_4 = 0 Then
BIT_BUIS_3 = 0
BIT_BUIS_4 = 0
EndIf
If EINDSCHAK_KLEP = 1 Then
LUIK_3 = 1
LUIK_4 = 1
BIT_BUIS_3 = 0
BIT_BUIS_4 = 0
DelayMS 1500
LOSKLEP = 0
LUIK_3 = 0
LUIK_4 = 0
GoTo KLEP_DICHT
EndIf
Return
GoTo TWEE_LUIKEN
;--------------------------------------------------------
; PROGRAMMALUS EINDSCHAKELAAT IS UIT, LOSKLEP KAN DICHT.
;--------------------------------------------------------
KLEP_DICHT:
If EINDSCHAK_KLEP = 0 Then
BIT_BUIS_1 = 0
BIT_BUIS_2 = 0
BIT_BUIS_3 = 0
BIT_BUIS_4 = 0
LOSKLEP = 0
LAMP = 0
GoTo MENU
EndIf
GoTo KLEP_DICHT
End
Hier het plan voor de knikkerbuizen, misschien brengt het anderen nog op een idee.
Ik hoop niet dat de TS het erg vindt.
Het is in ieder geval niet gelukt om onder de 50 regels te blijven
Ziet er netjes uit hoor!
Overleden
Mooi opgelost zo !!
Special Member
Op 4 juli 2016 09:45:44 schreef RVL-Electronics:
Het is in ieder geval niet gelukt om onder de 50 regels te blijven
Nee maar dat kon ook niet, toen ik de beschrijving kreeg van de TS bleek dat iets uitgebreider te zijn dan ik in eerste instantie dacht.
Op 4 juli 2016 10:22:02 schreef Shiptronic:
Mooi opgelost zo !!
en nogmaals je had natuurlijk gelijk wat het plaatsen betreft, op deze manier heeft iemand anders er misschien ook nog iets aan. En ik moet zeggen dat het wel een leuk idee is van de TS om zoiets te maken, het heeft voor de kinderen ook weer iets extra's.
http://www.protonbasic.co.uk/content.php/1450-Proton-Compiler-Updates
Ik lees in de laatste Proton (Picbasic) update het volgende:
Additions and Fixes made in version 3.5.8.1 of the Proton Compiler and version 1.0.3.3 of the Proton24 Compiler.
Proton Fixes
Adjusted unsigned variable assignment into a signed variable. i.e. SWord = Byte. It no longer sign extends the operand.
Corrected Signed > comparison with a signed word variable and a constant.Proton Additions
Added support for devices 16F1574, 16F1575, 16F1578, 16F1579, 16LF1574, 16LF1575, 16LF1578, 16LF1579.
Also added support for these unusual 8-bit devices: MCP19110, MCP19111, MCP19114, MCP19115, MCP19117, MCP19118 and MCP19119. These are standard 14-bit PICs but have dedicated high current PWM capabilities.
Added several devices that do not require the USB key. All the free 8-bit devices are now: 18F25K20, 18F25K22, 18F45K20, 18F45K22, 18F26K20, 18F26K22, 18F46K20, 18F46K22, 18F452, 16F877, and 16F877A. This means that the Amicus18 board can use the full Proton compiler.
Oftewel, de 16F877 (en meer) doet het nu ook zonder USB license key
Wel even uitzoeken hoe die download werkt.
De nieuwste versie is 3.5.8.6, hier is de link.
Special Member
Dat is misschien wel handig voor sommigen onder ons.