Wie kan mij een tip/strategie geven over hoe softwarematig een bedrijfsurenteller toe te voegen in een PIC16F874 die op 20MHz loopt.
Erik
In order to succeed you must fail, so that you know what not to do the next time.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
- Wat is je output (display) (led bar, LCD, 7-segments....)
- Why on earth an 874? Big overkill IMHO.
- Ik neem aan dat de bedrijfstijd tot-nu-toe bewaard moet blijven bij power down? Dat is een leuke opgave! (moet dus in de eeprom bewaard worden, maar eeprom schrijven is nogal onbetrouwbaar bij een lage spanning).
Benadski
Kom eens langs bij RevSpace of één van de andere spaces!
Misschien met een detector aan de voedingskant, nog voor de gelijkrichter (AC). Daarop een retriggerable monostabiele multivibrator met insteltijd van ongeveer 11 (of 22) milliseconden.
Voor de MMV heb je een nauwkeurig tijdsignaal (50 / 100Hz), erna heb je een uitgang die 11/22ms nadat de voeding uit is omklapt en via bijv. een interrupt de controller laat weten dat ie de waardes moet opslaan. Binnen die paar milliseconden zou de bufferelco in de voeding vast nog niet leeg zijn.
EDIT: De 50Hz die op het stopcontakt aanwezig is wordt volgens mij redelijk nauwkeurig gehouden. Veel wekkerradio's gebruiken dit dan ook als kloksignaal!
[Bericht gewijzigd door Benadski op ]
Ik heb mijn '874 voor 80% vol zitten met code (o.a. RS-232 communicatie en een constant vermogen regeling). Het komt erop neer dat als er geregeld wordt er een bedrijfsurenteller moet lopen die via RS-232 uitgelezen moet kunnen worden. Het gaat mij om het opzetten van de teller.
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Op 2 juli 2003 17:19:04 schreef Rob Loos:
Ik heb mijn '874 voor 80% vol zitten met code (o.a. RS-232 communicatie en een constant vermogen regeling). Het komt erop neer dat als er geregeld wordt er een bedrijfsurenteller moet lopen die via RS-232 uitgelezen moet kunnen worden. Het gaat mij om het opzetten van de teller.
Interrrupt maken die op een timeroverflow triggered.
En in die interrupt dan een teller verhogen bijv.