Um die Parametrisierung schon beim programmieren der Controller zu erledigen, muss das Array dataflash entsprechend gesetzt werden. Änderungen sind in 2 Dateien notwendig. Erstmal für den Ausgang die Datei fbo305.c const unsigned char __at 0x1A00 dataflash[512]=0x00; muss durch const unsigned char __at 0x1A00 dataflash[512]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x04,0x20,0x60,0x01,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00, 0x8F,0x1B,0x9A,0x00,0x00,0x00,0x02,0x11,0x46,0x0C,0x07,0x14,0x01,0x00,0xFE,0x01, 0xFE,0x02,0xFE,0x03,0xFE,0x04,0xFE,0x05,0xFE,0x06,0xFE,0x07,0xFE,0x08,0xFE,0x09, 0xFE,0x0A,0xFE,0x0B,0xFE,0x0C,0xFE,0x0D,0xFE,0x0E,0xFE,0x0F,0xFE,0x10,0xFE,0x11, 0xFE,0x12,0xFE,0x13,0xFE,0x14,0xFE,0x15,0xFE,0x16,0xFE,0x17,0xFE,0x17,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0xD1,0x53,0xD7,0x00,0x54,0xD3,0x00,0x55,0xD3,0x00,0x56, 0xD3,0x00,0x57,0xD3,0x00,0x58,0xD3,0x00,0x59,0xD3,0x14,0xD6,0x54,0x97,0x00,0x55, 0x9B,0x00,0x56,0x93,0x00,0x57,0x93,0x00,0x58,0x93,0x00,0x59,0x93,0x00,0x5A,0x93, 0x00,0x5B,0x93,0x00,0x5C,0x93,0x01,0x5D,0x93,0x01,0x5E,0x93,0x01,0x5F,0x93,0x01, 0x60,0xC3,0x00,0x61,0xC3,0x00,0x62,0xC3,0x00,0x63,0xC3,0x00,0x64,0xC3,0x00,0x65, 0xC3,0x00,0x66,0xC3,0x00,0x67,0xC3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00 }; ersetzt werden. Für den Eingang muss die Datei fb_hal_lpc.h geändert werden __code unsigned char __at 0x1A00 dataflash[512]=0x00; muss in __code unsigned char __at 0x1A00 dataflash[512]= // Bereich im Flash für User-Memory { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x04,0x70,0x54,0x02,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00, 0x00,0x1B,0x84,0x00,0x00,0x00,0x02,0x00,0x00,0x0C,0x07,0x18,0x01,0x00,0xFE,0x01, 0x01,0x02,0xFE,0x03,0x01,0x04,0xFE,0x05,0x01,0x06,0xFE,0x07,0xFE,0x08,0xFE,0x09, 0xFE,0x0A,0xFE,0x0B,0xFE,0x0C,0xFE,0x0D,0xFE,0x0E,0xFE,0x0F,0xFE,0x10,0xFE,0x11, 0xFE,0x12,0xFE,0x13,0xFE,0x14,0xFE,0x15,0xFE,0x16,0xFE,0x17,0xFE,0x18,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0xD1,0x53,0xD7,0x00,0x54,0xD3,0x00,0x55,0xD3,0x00,0x56, 0xD3,0x00,0x57,0xD3,0x00,0x58,0xD3,0x00,0x59,0xD3,0x00,0x5A,0xD3,0x00,0x5B,0xC3, 0x00,0x5D,0xC3,0x00,0x5F,0xC3,0x00,0x61,0xD3,0x00,0x63,0xC3,0x00,0x65,0xC3,0x00, 0x67,0xC3,0x00,0x69,0xC3,0x00,0x6B,0x93,0x00,0x6C,0x93,0x00,0x6D,0x93,0x00,0x6E, 0x93,0x00,0x6F,0x93,0x00,0x70,0x93,0x00,0x71,0x93,0x00,0x72,0x93,0x00,0x11,0x11, 0x11,0x11,0x0A,0x05,0x11,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; geändert werden. Dabei sollte es egal sein, ob die Zeile mit __code oder const beginnt. Es bedeutet nur das das Array im Code-Speicher angelegt wird, und darum vom Programm nicht geändert werden kann. Zum parametrisieren über ETS, wird aber trotzdem in das Array geschrieben. Dann sollte man beide Programme kompilieren und in die Controler flashen. Hardware und Programm zum flashen siehe http://mfluhr.de/Elektronik/ISP_P89LPC900.htm Die Daten bedeuten, das der Ausgang Pin 0 die Gruppenadresse 0c07 hat. Benutzte Eingänge gibt es 4, die alle die Gruppenadresse 0c07 (also Pin 0 des Ausgangs) schalten. Pin 0 schaltet den Ausgang beim drücken aus und beim loslassen ein. Pin 2 schaltet den Ausgang beim drücken ein und beim loslassen aus. Pin 4 schaltet den Ausgang beim loslassen ein. Pin 6 schaltet den Asugang beim loslassen aus. Das gilt natürlich alles nur, wenn die Taster und die LED gegen GND geschaltet sind.