Hier een aantal vraagjes:

1. Hoe bekom je in bascom de systeemtijd (de klok linksonder), zodat ik bij het programmeren van m'n microcontroller telkens de juiste tijd meegeef?

2. Kan ik ipv portb.1 = 1 zeggen lamp = 1, hoe configureer ik dit?

3. Voor een klok te maken, heb ik daar een kristal voor nodig, of is de inwendige RC oscillator acuraat genoeg?

Bedankt!

1. Version()

2.
Lamp alias Portb.1

3. Zelfs een extern kristal op een AVR wijkt na een dag al enkele seconden af. De RC oscillator gebruiken is dus geen goed idee, tenzij je overal te laat wil komen...
Als je klok goed moet kloppen, kun je beter beroep doen op een externe RTC, zoals een DS1307.

[Bericht gewijzigd door Stijn S op (12%)]

Hallo schaap

Je kunt prima een klok maken met een aangesloten kristal. Je kunt gewoon een timer gebruiken en die preloaden. Ik heb er een klok meelopen en die blijft goed lopen.


$crystal = 4000000  
Timpre = 61630

Config Timer1 = Timer , Prescale = 1024
Enable Timer1
Enable Interrupts
On Timer1 Tim1_isr

Timer1 = Timpre
Start Timer1
Do   'jou programma



Loop

Tim1_isr:

                                                'Seconde timer

  Timer1 = Timpre
  Seconde = Seconde + 1                                     'clock

Return

Klein stukje code.

Klein beetje uitleg:
Je kristal 4Mc deel je door 1024 = 3906 Hz
Je 16 bits register telt tot 65536. In 1 sec moet je dus een interrupt krijgen. Je laad je register met 65536-3906 = 61630.
Nu krijg je na elke sec een interrupt.
Ik heb in mijn hoofd lus de rest van de klok staan. Ik vergelijk mijn seconde met de oude waarde:

If Seconde <> Oldsec Then
.......
.......
Oldsec = Seconde
end if

Hopelijk heb je hier iets aan.

Mvg Ernst