コード例 #1
0
ファイル: pfGUIControlMod.cpp プロジェクト: Deledrius/Plasma
pfGUIColorScheme::pfGUIColorScheme( const ST::string &face, uint8_t size, uint8_t fontFlags )
{
    IReset();
    fFontFace = face;
    fFontSize = size;
    fFontFlags = fontFlags;
}
コード例 #2
0
ファイル: i2cL476.cpp プロジェクト: Kreyl/Oven
void i2c_t::ScanBus() {
    if(chBSemWait(&BSemaphore) != MSG_OK) return;
    Uart.Printf("     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f");
    uint32_t AddrHi, Addr;
    I2C_TypeDef *pi2c = PParams->pi2c;  // To make things shorter
    for(AddrHi = 0; AddrHi < 0x80; AddrHi += 0x10) {
        Uart.Printf("\r%02X: ", AddrHi);
        for(uint32_t n=0; n<0x10; n++) {
            Addr = AddrHi + n;
            if(Addr <= 0x01 or Addr > 0x77) Uart.Printf("   ");
            else {
                IReset(); // Reset I2C
                // Set addr and autoend; NBYTES = 0
                pi2c->CR2 = (Addr << 1) | I2C_CR2_AUTOEND;
                pi2c->CR2 |= I2C_CR2_START;     // Start
                while(!(pi2c->ISR & I2C_ISR_STOPF));
                if(pi2c->ISR & I2C_ISR_NACKF) Uart.Printf("__ ");
                else Uart.Printf("%02X ", Addr);
            }
        } // for lo
    } // for hi
    // Disable I2C
    pi2c->CR1 &= ~I2C_CR1_PE;
    Uart.Printf("\r");
    chBSemSignal(&BSemaphore);
}
コード例 #3
0
ファイル: i2cL476.cpp プロジェクト: Kreyl/Oven
uint8_t i2c_t::Write(uint32_t Addr, uint8_t *WPtr, uint32_t WLength) {
    if(chBSemWait(&BSemaphore) != MSG_OK) return FAILURE;
    uint8_t Rslt;
    msg_t r;
    I2C_TypeDef *pi2c = PParams->pi2c;  // To make things shorter
    if(WLength == 0 or WPtr == nullptr) { Rslt = CMD_ERROR; goto WriteEnd; }
    if(IBusyWait() != OK) { Rslt = BUSY; goto WriteEnd; }
    IReset(); // Reset I2C
    // Prepare TX DMA
    dmaStreamSetMode(PParams->PDmaTx, DMA_MODE_TX);
    dmaStreamSetMemory0(PParams->PDmaTx, WPtr);
    dmaStreamSetTransactionSize(PParams->PDmaTx, WLength);
    // Prepare tx
    IState = istWrite;  // Nothing to read
    pi2c->CR2 = (Addr << 1) | (WLength << 16);
    dmaStreamEnable(PParams->PDmaTx);   // Enable TX DMA
    // Enable IRQs: TX completed, error, NAck
    pi2c->CR1 |= (I2C_CR1_TCIE | I2C_CR1_ERRIE | I2C_CR1_NACKIE);
    pi2c->CR2 |= I2C_CR2_START;         // Start transmission
    // Wait completion
    chSysLock();
    r = chThdSuspendTimeoutS(&PThd, MS2ST(I2C_TIMEOUT_MS));
    chSysUnlock();
    // Disable IRQs
    pi2c->CR1 &= ~(I2C_CR1_TCIE | I2C_CR1_ERRIE | I2C_CR1_NACKIE);
    if(r == MSG_TIMEOUT) {
        pi2c->CR2 |= I2C_CR2_STOP;
        Rslt = TIMEOUT;
    }
    else Rslt = (IState == istFailure)? FAILURE : OK;
    WriteEnd:
    chBSemSignal(&BSemaphore);
    return Rslt;
}
コード例 #4
0
ファイル: plAvatarMgr.cpp プロジェクト: Drakesinger/Plasma
// DTOR
plAvatarMgr::~plAvatarMgr()
{
    IReset();

    delete fLog;
    fLog = nil;
}
コード例 #5
0
ファイル: plAgeManifest.cpp プロジェクト: Asteral/Plasma
bool plManifest::Read(const char* filename)
{
    plVersSection   versReader(this);
    plBaseSection   baseReader(this);

    plInitSectionReader* readers[] = { &versReader, &baseReader, nil };
    
    plInitFileReader reader(readers, 4096);     // Allow extra long lines
    reader.SetUnhandledSectionReader(&baseReader);
    
    if (!reader.Open(filename))
        return false;

    // Clear out before we read
    IReset();

    if (!reader.Parse())
        return false;

    return true;
}
コード例 #6
0
ファイル: kl_usb.cpp プロジェクト: Kreyl/nute
// ================================ IRQ ========================================
void Usb_t::IHandleIrq() {
    uint32_t sts, src;
    // Get irq flag
    sts = OTG_FS->GINTSTS & OTG_FS->GINTMSK;
    OTG_FS->GINTSTS = sts;
    Uart.Printf("Irq: %X %u\r\n", sts, chTimeNow());
//    Uart.Printf("OCTL: %X\r\n", OTG_FS->oe[0].DOEPCTL);

    // Reset
    if(sts & GINTSTS_USBRST) IReset();
    // Enumeration done
    if (sts & GINTSTS_ENUMDNE) { (void)OTG_FS->DSTS; }

    // RX FIFO not empty handling
    if (sts & GINTSTS_RXFLVL) {
        Uart.Printf("rx\r\n");
        IRxHandler();
//        chSysLockFromIsr();
//        OTG_FS->GINTMSK &= ~GINTMSK_RXFLVLM;    // Disable RX irq until current is processed
//        if(PThread->p_state == THD_STATE_SUSPENDED) chThdResumeI(PThread);
//        chSysUnlockFromIsr();
    }

    // OUT & IN event handling
    if(sts & GINTSTS_IEPINT) {
        src = OTG_FS->DAINT;
        if(src & (1 << 0)) IEpInHandler(0);
        if(src & (1 << 1)) IEpInHandler(1);
        if(src & (1 << 2)) IEpInHandler(2);
        if(src & (1 << 3)) IEpInHandler(3);
    }
    if(sts & GINTSTS_OEPINT) {
        src = OTG_FS->DAINT;
        if(src & (1 << 16)) IEpOutHandler(0);
        if(src & (1 << 17)) IEpOutHandler(1);
        if(src & (1 << 18)) IEpOutHandler(2);
        if(src & (1 << 19)) IEpOutHandler(3);
    }
}
コード例 #7
0
bool plManifest::Read(hsStream* stream)
{
    plVersSection   versReader(this);
    plBaseSection   baseReader(this);

    plInitSectionReader* readers[] = { &versReader, &baseReader, nil };
    
    plInitFileReader reader(readers, 4096);     // Allow extra long lines
    reader.SetUnhandledSectionReader(&baseReader);
    
    // manifests don't need to be encrypted
    reader.SetRequireEncrypted(false);

    if (!reader.Open(stream))
        return false;

    // Clear out before we read
    IReset();

    if (!reader.Parse())
        return false;

    return true;
}
コード例 #8
0
ファイル: pfGUIControlMod.cpp プロジェクト: Deledrius/Plasma
pfGUIColorScheme::pfGUIColorScheme( hsColorRGBA &foreColor, hsColorRGBA &backColor )
{
    IReset();
    fForeColor = foreColor;
    fBackColor = backColor;
}
コード例 #9
0
ファイル: pfGUIControlMod.cpp プロジェクト: Deledrius/Plasma
pfGUIColorScheme::pfGUIColorScheme()
{
    IReset();
}
コード例 #10
0
plManifest::~plManifest()
{
    IReset();
}