-
-
Neuer Benutzer
Öfters hier
Asuro
Die Routine vom Asuro hilft mir nicht steig ich nicht ein, ich verwende das beispiel programm vom RP6: RP6Base_I2CMaster_01, hänge es auch nochmal dran. Dabei sollen 8 LEDs über einen PCF8574 angesteuert werden. Anstelle dieser 8 LEDs muss ich das programm so umkonfektionieren das ich mein 162 Displex von Displaytech ansteuern kann.
Hier das Programm,
// Uncommented Version of RP6Base_I2C_Master_01.c
// written by Dominik S. Herwald
// ------------------------------------------------------------------------------------------
#include "RP6RobotBaseLib.h"
#include "RP6I2CmasterTWI.h"
#define PCF8574_8LEDS_ADR 0x70
void I2C_requestedDataReady(uint8_t dataRequestID)
{
}
void I2C_transmissionError(uint8_t errorState)
{
writeString_P("\nI2C ERROR - TWI STATE: 0x");
writeInteger(errorState, HEX);
writeChar('\n');
}
void task_knightRider(void)
{
static uint8_t runningLight = 3;
static uint8_t dir = 0;
if(getStopwatch1() > 70) {
I2CTWI_transmitByte(PCF8574_8LEDS_ADR, (~runningLight) );
if(runningLight == 12
{
dir = 1;
runningLight = 192;
}
else if(runningLight < 3)
{
dir = 0;
runningLight = 3;
}
else if(dir)
runningLight >>= 1;
else
runningLight <<= 1;
setStopwatch1(0);
}
}
int main(void)
{
initRobotBase();
I2CTWI_initMaster(100);
I2CTWI_setRequestedDataReadyHandler(I2C_requestedD ataReady);
I2CTWI_setTransmissionErrorHandler(I2C_transmissio nError);
setLEDs(0b101010);
mSleep(1000);
setLEDs(0b010101);
powerON();
startStopwatch1();
while(true)
{
task_knightRider();
task_I2CTWI();
task_RP6System();
}
return 0;
}
also in das unterprogramm task_knightrider muss die änderung.
Hilfe,Hilfe,Hilfe hehe.....
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen