Nieko
LED addicted... Fijnmalen en snuiven maar!! :P
Beste forum leden,
Wij moeten met 2 personen een project in een bedrijf maken. Nou moeten wij dit in C programmeren, een programmeer taal die wij op school niet hebben gehad. Op het bedrijf zelf kunnen ze ons ook niet optimaal ondersteunen, het fijnen moeten wij opzoeken op google.
Nou moeten wij wat met de UART doen. Vanuit een module wordt een reeks bytes verzonden en die moeten wij ontvangen in de UART en verwerken. Om te weten dat er 1 byte binnen is wil ik dat er een interrupt gegenereerd wordt en dat ik via de interrupt handeler het register uit lees. Nou zitten we alleen met het probleem dat wij niet weten hoe een interrupt in C afgehandeld dient te worden.
Ik bedoel, in assambly moet je ergens de program counter invoeren waar hij bij een interrupt heen springt en daar na een de subroutine selecteren die de interrupt afhandeld. In C heb ik bijv. al geen idee hoe dat ik aanvankelijk de program counter een subroutine kan selecteren.
Kan iemand ons op het juiste spoor zetten?
Met vriendelijke groeten,
Niek en Sjors
TheBasher
Don't build anything you can't take apart
EricP
mét CE
Om wat specifieker te zijn: het hangt van de compiler af. Welke compiler wil je gaan gebruiken? (en als je die naam, de controller die je gebruikt en 'interrupt' aan een search engine voert, heb je waarschijnlijk je antwoord).
Heb je trouwens geen library bij je compiler die UART handling doet? Of wil je zulke specifieke dingen dat die het niet gaat redden?
Nieko
LED addicted... Fijnmalen en snuiven maar!! :P
Bedankt voor jullie reacties.
Wij gebruiken op het moment MPLAB IDE met de Microchip C18 Toolsuite in combinatie met een PIC 18F4620.
Wij gaan eens kijken of we misschien ergens iets van een library voor de uart kunnen vinden.
C18 heeft een mooie library ingebouwd hoor. Er zijn gewoon help files beschikbaar.
http://ww1.microchip.com/downloads/en/devicedoc/mplab_c18_libraries_51…
Dit moet het vast duidelijk maken.
Peter Claus
It is so simple to be happy, but it is so difficult to be simple
Interrupts zijn microcontroller specifiek.
Het komt er op neer van de compiler te zeggen om de ISR, of een jump er naar, op het hardware adres te plaatsen waar de microcontroller naartoe gaat bij het optreden van een interrupt.
In principe zijn dit #PRAGMA regels voor de preprocessor. Hoe dat precies te doen, is te vinden in de user manual van de gebruikte C-compiler.