我在指針世界中有點迷路:-) 使用傳遞一個數來讀取值readSystemVal的工作原理就像是一個魅力,但現在我想寫給這些使用writeSystemVal的變量。丟失在pointerworld中,通過數組寫入到變量
無法真正找到我應該做的事情: * systemVal將地址保存在變量中,但是如何將其值寫入它?
你會好看嗎?
(系統:AVR,蝕,atmega644)
// User Changeable variables
uint8_t MIDIchan1 = 0; // midichannel osc 1
uint8_t MIDIchan2 = 1; // midichannel osc 2
uint8_t MIDIchan3 = 2; // midichannel osc 3
uint8_t pbRange = 12; // pitchbend
uint8_t omniModus = 0x00; // 3 osc modus or 1 omni modus
uint8_t midiThru = 0x01; // midiTrhu on/off
uint8_t *systemValList[] = {&MIDIchan1, &MIDIchan2, &MIDIchan3, &pbRange, &omniModus, &midiThru};
//**************************************************
// readSystemVal
// DESCRIPTION:
// Hele simpele note off routine
//**************************************************
uint8_t readSystemVal (uint8_t systemItem)
{
uint8_t *systemVal = (uint8_t *)systemValList[(uint8_t)systemItem];
uint8_t returnVal = *systemVal;
return returnVal;
}
void writeSystemVal (uint8_t ctrlValue, uint8_t systemItem)
{
/*
uint8_t *systemVal = (uint8_t *)systemValList[(uint8_t)systemItem];
//uint8_t returnVal = *systemVal;
// systemVal = ctrlValue;
*/
}
你可能在尋找'* systemVal = ctrlValue;'? – Angew
將事物鑄造成現有類型只會導致混亂和潛在的未來錯誤。 – molbdnilo