PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wer kanns erklären?



roy-sam
19.03.2011, 11:24
Hallo,

ich wollte mal gern wissen was die Befehle:
task_checkINT0() und task_I2CTWI()genau machen. Die kurze Erklärung in der M32 reicht mir nicht.
Also wenns jemand genau weiss, bitte bitte schreiben.:):):)

Danke an ALLE
roy-sam

shedepe
19.03.2011, 11:40
Schau dir doch einfach in der Lib an was die Funktionen machen. Die Funktion task_I2CTWI(void) wird zudem auch in der Anleitung der RP6 Base auf Seite 109 noch mal erläutert.

RolfD
19.03.2011, 11:44
Die kurze Erklärung in der M32 reicht mir nicht.


Meinst Du die?



/**
* This function has to be called VERY frequently out of the main loop.
* Bigger delays result in slower reaction to Interrupt requests of the
* Slave.
* This function initiates a request of the first 3 Registers of the I2C Bus
* Slave Controller - these Bytes contain status bits, which tell us what
* caused the Interrupt request.
* They are checked in the requested data ready handler which should call
* the function checkRP6Status below.
*/
void task_checkINT0(void)
{
if(!block && (PIND & EINT1))
{
block = true; // Block further requests and wait until
// this request has been processed.
I2CTWI_requestRegisterFromDevice(I2C_RP6_BASE_ADR, INT0_STATUS_CHECK, 0, 3);
}
}

Allerdings hab ich "die" nicht in der M32 gefunden...mit der Leitung INT0 kann die Base der M32 per IRQ mitteilen wenn sie was von ihr will... und wenn dem so ist, schaut die M32 mittels I2CTWI_requestRegisterFromDevice in den ersten 3 Bytes der Base Register nach, was sie beunruhigte... quasi sowas wie nen Schwestern-Rufknopf im KH. Steht aber auch da im Text... warum das hier nicht als IRQ ausgelegt ist sondern als pollende Funktion, weis ich nicht, wird aber vermutlich seinen Grund haben... da fragst du besser SlyD oder guckst genauer in die Docu.
task_I2CTWI() ? Du meinst in RP6I2CmasterTWI.c ?
Die Funktion sorgt dafür, das verkettete Operationen wie Schreiben eines i2c Bytes mit anschließendem lesen eines Wertes erledigt werden können. Sie ist das Pedant zur bzw. korrespondiert mit der TWI-ISR dort weiter unten und sorgt letztlich dafür das _meist_ alles per I2C da ankommt wo es hin soll. Man kann die Funktion und die ISR nicht getrennt betrachten und beides zusammen ist komplex... sehr ... komplex!
LG Rolf