Bascom voor Arduino

Geacht Forum,

Ik heb hieronder drie maal het programma van het knipperledje (D13) in Bascom herschreven.
Hierover zou ik uw mening willen horen.

BLINK-1
Het programma zoals het in Bascom geschreven zou kunnen worden.
Commentaar staat achter een ' (apostrofje)

BLINK-2
Hier worden de Arduino-namen toegepast.
De vertaling gebeurd IN het hoofdprogramma zelf

BLINK-3
Hier is een apart bestand geschreven, waarin de aliassen worden benoemd.
Het doel: hoofdprogramma overzichtelijk houden.

Dit programma heeft een aanvulling: ' Arduino_configuratie.bas
In die aanvulling worden additionele zaken benoemd, zoals aliassen
Als voorbeeld heb ik hier meerdere zaken benoemd, die voor het knipperledje niet worden gebruikt.

Persoonlijk kies ik er voor om de alias-benamingen IN het hoofdprogramma te plaatsen.
De reden is, dat je dan alles bij elkaar hebt.
Met commentaar en verwijzingen zal het programma toch wel overzichtelijk blijven
Uiteraard kan het in de toekomst toch anders blijken te zijn, de tijd zal het leren.
Verder ben ik van mening om als ik een alias voor portB.5 gebruik, dit dan maar meteen LEDje te noemen.
D13 is net zo onduidelijk als B5. daarmee zijn de Arduino benamingen om zeep geholpen.
Bovendien programmeren we hier in Bascom, niet in C.

Wat is uw mening hierover?
Programma's zijn rechtstereeks in Bascom over te nemen.

================================
' BLINK-1

' on board LEDje op D13 knipperen

$regfile = "m328def.dat" ' Atmega-328
$crystal = 16000000 ' 16 Mhz Kristal
' de twee instellingen (Regfile en crystal) mogen ook worden weggelaten, omdat dit al in de compiler is aangegeven.
' omdat de compiler zijn instellingen wel eens 'vergeet' zou ik dit als standaard blijven gebruiken.

Ddrb.5 = 1 ' maak van poort B5 een uitgang

Do ' begin van het programma
Toggle Portb.5 ' verander poort b5 van waarde is hij hoog, dan wordt hij laag.
Waitms 1000 ' wacht 1000 ms
Loop ' einde programma, begin opnieuw
End

=====================================
' BLINK-2
'
' on board LEDje op D13 knipperen
' bij deze vertaling wordt de poortnaam vooraf aangepast aan de naam die bij Arduino wordt gebruikt
' de Bascomnaam B5 krijgt een alias D13 (D13 Alias PORTB.5)
' als je dan toch aliassen gebruikt, benoem dan niet de poortnaam, maar geef het de naam van de toepassing
' bijvoorbeeld portb.5 = motor (motor Alias portb.5)

$regfile = "m328def.dat" ' Atmega-328
$crystal = 16000000 ' 16 Mhz Kristal

D13 Alias Portb.5 ' je kan hier elke willekeurige benaming toewijzen.
Ddrb.5 = 1 ' maak van poort D13 een uitgang

Do ' begin van het programma
Toggle D13 ' verander poort D13 van waarde
Waitms 1000 ' wacht 1000 ms
Loop ' einde programma, begin opnieuw
End

=======================================

' BLINK-3
'
' on board LEDje op D13 laten knipperen

$regfile = "m328def.dat" ' Atmega-328
$crystal = 16000000 ' 16 Mhz Kristal

$include "blink-3_config.bas" ' hierin worden onder andere de namen toegewezen
' dit bestand mag elke naam en extensie hebben.

Do ' begin van het programma
Toggle D13 ' verander poort D13 van waarde
Waitms 1000 ' wacht 1000 ms
Loop ' einde programma, begin opnieuw
End

==========================================
' Arduino configuratie

' digitale variabelen
D0 Alias Portd.0 ' = RxD
D1 Alias Portd.1 ' = TxD
D2 Alias Portd.2
D3 Alias Portd.3 ' = PWM
D4 Alias Portd.4
D5 Alias Portd.5 ' = PWM
D6 Alias Portd.6 ' = PWM
D7 Alias Portd.7
D8 Alias Portb.0
D9 Alias Portb.1 ' = PWM
D10 Alias Portb.2 ' = PWM
D11 Alias Portb.3 ' = PWM
D12 Alias Portb.4
D13 Alias Portb.5 ' onboard LEDje

' analoge variabelen
A0 Alias 0 ' Portc.0
A1 Alias 1 ' Portc.1
A2 Alias 2 ' Portc.2
A3 Alias 3 ' Portc.3
A4 Alias 4 ' Portc.4
A5 Alias 5 ' Portc.5

' aan en uit waarden
Const Aan = 1 ' pin = hoog
Const Uit = 0 ' pin = laag

===========================================
groeten, Dré Jansen