本文整理汇总了C++中reg_set函数的典型用法代码示例。如果您正苦于以下问题:C++ reg_set函数的具体用法?C++ reg_set怎么用?C++ reg_set使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了reg_set函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: _send
static int _send(netdev2_t *netdev, const struct iovec *vector, int count) {
encx24j600_t * dev = (encx24j600_t *) netdev;
lock(dev);
/* wait until previous packet has been sent */
while ((reg_get(dev, ECON1) & TXRTS));
/* copy packet to SRAM */
size_t len = 0;
for (int i = 0; i < count; i++) {
sram_op(dev, WGPDATA, (i ? 0xFFFF : TX_BUFFER_START), vector[i].iov_base, vector[i].iov_len);
len += vector[i].iov_len;
}
/* set start of TX packet and length */
reg_set(dev, ETXST, TX_BUFFER_START);
reg_set(dev, ETXLEN, len);
/* initiate sending */
cmd(dev, SETTXRTS);
/* wait for sending to complete */
/* (not sure if it is needed, keeping the line uncommented) */
/*while ((reg_get(dev, ECON1) & TXRTS));*/
unlock(dev);
return len;
}
开发者ID:WilsonWangTHU,项目名称:RIOT,代码行数:30,代码来源:encx24j600.c
示例2: main
int main(void)
{
hw_init();
while(1)
{
/* Set LED on */
reg_wr((u32)GPIOI_BSRR, (0x1 << 1) );
/* Start Timer2 */
reg_set(TIM2_CR1, 1);
/* Wait Timer2 ends */
while(reg_rd(TIM2_CR1) & 1)
;
/* Set LED off */
reg_wr((u32)GPIOI_BSRR, (0x1 << 17) );
/* Start Timer2 */
reg_set(TIM2_CR1, 1);
/* Wait Timer2 ends */
while(reg_rd(TIM2_CR1) & 1)
;
}
}
开发者ID:91321146,项目名称:stm32f746g-disco,代码行数:25,代码来源:main.c
示例3: _init
static int _init(netdev2_t *encdev)
{
encx24j600_t *dev = (encx24j600_t *) encdev;
DEBUG("encx24j600: starting initialization...\n");
/* setup IO */
gpio_init(dev->cs, GPIO_OUT);
gpio_set(dev->cs);
gpio_init_int(dev->int_pin, GPIO_IN_PU, GPIO_FALLING, encx24j600_isr, (void*)dev);
if (spi_init_master(dev->spi, SPI_CONF_FIRST_RISING, ENCX24J600_SPI_SPEED) < 0) {
return -1;
}
lock(dev);
/* initialization procedure as described in data sheet (39935c.pdf) */
do {
do {
xtimer_usleep(ENCX24J600_INIT_DELAY);
reg_set(dev, ENC_EUDAST, 0x1234);
xtimer_usleep(ENCX24J600_INIT_DELAY);
} while (reg_get(dev, ENC_EUDAST) != 0x1234);
while (!(reg_get(dev, ENC_ESTAT) & ENC_CLKRDY));
/* issue System Reset */
cmd(dev, ENC_SETETHRST);
/* make sure initialization finalizes */
xtimer_usleep(1000);
} while (!(reg_get(dev, ENC_EUDAST) == 0x0000));
/* configure flow control */
phy_reg_set(dev, ENC_PHANA, 0x05E1);
reg_set_bits(dev, ENC_ECON2, ENC_AUTOFC);
/* setup receive buffer */
reg_set(dev, ENC_ERXST, RX_BUFFER_START);
reg_set(dev, ENC_ERXTAIL, RX_BUFFER_END);
dev->rx_next_ptr = RX_BUFFER_START;
/* configure receive filter to receive multicast frames */
reg_set_bits(dev, ENC_ERXFCON, ENC_MCEN);
/* setup interrupts */
reg_set_bits(dev, ENC_EIE, ENC_PKTIE | ENC_LINKIE);
cmd(dev, ENC_ENABLERX);
cmd(dev, ENC_SETEIE);
DEBUG("encx24j600: initialization complete.\n");
unlock(dev);
#ifdef MODULE_NETSTATS_L2
memset(&netdev->stats, 0, sizeof(netstats_t));
#endif
return 0;
}
开发者ID:SusumuMATSUI,项目名称:RIOT-1,代码行数:60,代码来源:encx24j600.c
示例4: ioctl_set_opts
static int ioctl_set_opts(void *user_addr)
{
struct pme_ctrl_opts opts;
u32 val;
if (copy_from_user(&opts, user_addr, sizeof(opts)))
return -EFAULT;
/* Validation */
if (opts.flags & PME_CTRL_OPT_KVLTS)
if (opts.kvlts < 1 || opts.kvlts > 16)
return -EINVAL;
if (opts.flags & PME_CTRL_OPT_SWDB)
reg_set(regs, SWDB, opts.swdb);
if (opts.flags & PME_CTRL_OPT_EOSRP) {
val = reg_get(regs, SREC);
/* 18 lower bits */
val = (val & ~PME_DMA_EOSRP_MASK) |
(opts.eosrp & PME_DMA_EOSRP_MASK);
reg_set(regs, SREC, val);
}
if (opts.flags & PME_CTRL_OPT_DRCC)
reg_set(regs, DRCC, opts.drcc);
if (opts.flags & PME_CTRL_OPT_KVLTS) {
val = opts.kvlts - 1;
reg_set(regs, KVLTS, val);
}
if (opts.flags & PME_CTRL_OPT_MCL) {
val = reg_get(regs, KEC);
/* 15 lower bits */
val = (val & ~PME_DMA_MCL_MASK) |
(opts.mcl & PME_DMA_MCL_MASK);
reg_set(regs, KEC, val);
}
return 0;
};
开发者ID:DavionKnight,项目名称:H18CE-1604C,代码行数:35,代码来源:base_module.c
示例5: hw_init_timer
static void hw_init_timer(void)
{
reg_set(RCC_APB1ENR, 0x01); /* Activate Timer2 */
/* Configure Timer2 */
reg_wr (TIM2_CR1, 0x0200); /* Input clock divided by 4 */
reg_wr (TIM2_ARR, 0x8000); /* Value used when reloaded */
reg_wr (TIM2_PSC, 0x80); /* Prescaler */
reg_set(TIM2_CR1, 0x08); /* Set OPM (one-pulse-mode) */
}
开发者ID:91321146,项目名称:stm32f746g-disco,代码行数:9,代码来源:hardware.c
示例6: tda998x_audio_mute
static void tda998x_audio_mute(struct tda998x_priv *priv, bool on)
{
if (on) {
reg_set(priv, REG_SOFTRESET, SOFTRESET_AUDIO);
reg_clear(priv, REG_SOFTRESET, SOFTRESET_AUDIO);
reg_set(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_RST_FIFO);
} else {
reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_RST_FIFO);
}
}
开发者ID:BORETS24,项目名称:common.git-android-4.4,代码行数:10,代码来源:tda998x_drv.c
示例7: _inc
/*
* Increases the value of a selected register by a constant
* des - destination register
* const8 - constant to add
*/
void
_inc (int des, int const8)
{
check (des, TYPE_DES, 1);
check (const8, TYPE_CONST8, 2);
/* Set des to des + const8 */
reg_set (0x1, des, mem.registers[des] + const8);
/* Set r1 */
reg_set (0x0, 0x1, ((mem.registers[des] > 127) ? 1 : -1));
}
开发者ID:cfdrake,项目名称:cant,代码行数:17,代码来源:instructions.c
示例8: test_regpush
static void test_regpush(void) {
reg_setSpecial(rS,STACK_ADDR);
reg_setSpecial(rO,STACK_ADDR);
// arrange things so that a push(255) needs to write a register to memory first
{
reg_set(254,0x1234);
reg_push(254);
test_assertOcta(reg_getSpecial(rL),0);
test_assertOcta(reg_getSpecial(rS),STACK_ADDR);
test_assertOcta(reg_getSpecial(rO),STACK_ADDR + 0x7F8);
jmp_buf env;
int ex = setjmp(env);
if(ex != EX_NONE) {
test_assertOcta(reg_getSpecial(rL),0);
test_assertOcta(reg_getSpecial(rS),STACK_ADDR);
test_assertOcta(reg_getSpecial(rO),STACK_ADDR + 0x7F8);
}
else {
ex_push(&env);
reg_push(255);
test_assertFalse(true);
}
ex_pop();
reg_pop(0);
}
// arrange things so that a push(0) sets $0, which needs to write a register to memory first
{
reg_set(254,0x1234);
reg_push(254);
test_assertOcta(reg_getSpecial(rL),0);
test_assertOcta(reg_getSpecial(rS),STACK_ADDR);
test_assertOcta(reg_getSpecial(rO),STACK_ADDR + 0x7F8);
jmp_buf env;
int ex = setjmp(env);
if(ex != EX_NONE) {
test_assertOcta(reg_getSpecial(rL),0);
test_assertOcta(reg_getSpecial(rS),STACK_ADDR);
test_assertOcta(reg_getSpecial(rO),STACK_ADDR + 0x7F8);
}
else {
ex_push(&env);
reg_push(0);
test_assertFalse(true);
}
ex_pop();
reg_pop(0);
}
}
开发者ID:Logout22,项目名称:Escape,代码行数:52,代码来源:tinterruptibility.c
示例9: _mul
/*
* Integer multiplication
* des - destination register
* src1 - factor
* src2 - factor
*/
void
_mul (int des, int src1, int src2)
{
check (des, TYPE_DES, 1);
check (src1, TYPE_SRC, 2);
check (src2, TYPE_SRC, 3);
/* Calculate and store/update r1 */
int prod = src1 * src2;
reg_set (0x1, des, prod);
reg_set (0x0, 0x1, prod);
}
开发者ID:cfdrake,项目名称:cant,代码行数:19,代码来源:instructions.c
示例10: hw_init_clock
static void hw_init_clock(void)
{
u32 val;
/* 1) Activate HSE, that will be used as PLL source */
/* Clear HSEON bit */
reg_clr(RCC_CR, 0x00010000);
/* Clear HSEBYP bit */
reg_clr(RCC_CR, 0x00040000);
/* Activate HSE (set HSEON) */
reg_set(RCC_CR, 0x00010000);
/* Wait until HSERDY bit set */
while( (reg_rd(RCC_CR) & 0x00020000) == 0)
;
/* 2) Configure and activate PLL */
/* Configure PLL */
val = (432 << 6); // set N (VCO multiplier)
val |= 25; // set M (VCO divisor)
val |= ( 0 << 16); // set P (output divisor
val |= ( 9 << 24); // set Q (peripheral divisor)
reg_wr(RCC_PLLCFGR, val);
/* Activate PLL */
reg_set(RCC_CR, 0x01000000);
while( (reg_rd(RCC_CR) & 0x02000000) == 0)
;
/* 3) Update flash latency, and peripheral bus prescaler */
/* Set Flash latency to 7 */
reg_set(FLASH_ACR, 0x07);
/* PCLK1 - Set APB1 clock divider to 4 (value 5) */
reg_set(RCC_CFGR, (5 << 10) );
/* PCLK2 - Set APB2 clock divider to 2 (value 4) */
reg_set(RCC_CFGR, (4 << 13) );
/* 4) Switch the current clock to PLL */
/* Change the clock source */
val = reg_rd(RCC_CFGR);
val &= ~0x03;
val |= 0x02;
reg_wr(RCC_CFGR, val);
/* Wait until, clock source is modified */
while( (reg_rd(RCC_CFGR) & 0x0C) != (0x02 << 2))
;
}
开发者ID:91321146,项目名称:stm32f746g-disco,代码行数:51,代码来源:hardware.c
示例11: ak881x_s_std_output
static int ak881x_s_std_output(struct v4l2_subdev *sd, v4l2_std_id std)
{
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct ak881x *ak881x = to_ak881x(client);
u8 vp1;
if (std == V4L2_STD_NTSC_443) {
vp1 = 3;
ak881x->lines = 480;
} else if (std == V4L2_STD_PAL_M) {
vp1 = 5;
ak881x->lines = 480;
} else if (std == V4L2_STD_PAL_60) {
vp1 = 7;
ak881x->lines = 480;
} else if (std && !(std & ~V4L2_STD_PAL)) {
vp1 = 0xf;
ak881x->lines = 576;
} else if (std && !(std & ~V4L2_STD_NTSC)) {
vp1 = 0;
ak881x->lines = 480;
} else {
/* No SECAM or PAL_N/Nc supported */
return -EINVAL;
}
reg_set(client, AK881X_VIDEO_PROCESS1, vp1, 0xf);
return 0;
}
开发者ID:AD5GB,项目名称:kernel_n5_3.10-experimental,代码行数:30,代码来源:ak881x.c
示例12: spi1_ios
static void spi1_ios(void)
{
u32 val;
reg_set(RCC_APB2ENR, 0x04); /* Activate GPIOA */
/* Configure NSS pin (PA4) */
val = reg_rd(GPIOA);
val &= 0xFFF0FFFF;
val |= 0x00030000; /* output, 50MHz, push-pull */
reg_wr(GPIOA, val);
reg_wr(GPIO_BSRR(GPIOA), (0x01 << 4)); /* Disable SS (nss=1) */
/* Configure SCK pin (PA5) */
val = reg_rd(GPIOA);
val &= 0xFF0FFFFF;
val |= 0x00B00000; /* output, 50MHz, AF, push-pull */
reg_wr(GPIOA, val);
/* Configure MOSI pin (PA7) */
val = reg_rd(GPIOA);
val &= 0x0FFFFFFF;
val |= 0xB0000000; /* output, 50MHz, AF, push-pull */
reg_wr(GPIOA, val);
/* Configure MISO pin (PA6) */
val = reg_rd(GPIOA);
val &= 0xF0FFFFFF;
val |= 0x04000000; /* input, floating */
reg_wr(GPIOA, val);
}
开发者ID:Agilack,项目名称:plc-exstina_50,代码行数:31,代码来源:spi.c
示例13: tda998x_reset
static void
tda998x_reset(struct tda998x_priv *priv)
{
/* reset audio and i2c master: */
reg_write(priv, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER);
msleep(50);
reg_write(priv, REG_SOFTRESET, 0);
msleep(50);
/* reset transmitter: */
reg_set(priv, REG_MAIN_CNTRL0, MAIN_CNTRL0_SR);
reg_clear(priv, REG_MAIN_CNTRL0, MAIN_CNTRL0_SR);
/* PLL registers common configuration */
reg_write(priv, REG_PLL_SERIAL_1, 0x00);
reg_write(priv, REG_PLL_SERIAL_2, PLL_SERIAL_2_SRL_NOSC(1));
reg_write(priv, REG_PLL_SERIAL_3, 0x00);
reg_write(priv, REG_SERIALIZER, 0x00);
reg_write(priv, REG_BUFFER_OUT, 0x00);
reg_write(priv, REG_PLL_SCG1, 0x00);
reg_write(priv, REG_AUDIO_DIV, AUDIO_DIV_SERCLK_8);
reg_write(priv, REG_SEL_CLK, SEL_CLK_SEL_CLK1 | SEL_CLK_ENA_SC_CLK);
reg_write(priv, REG_PLL_SCGN1, 0xfa);
reg_write(priv, REG_PLL_SCGN2, 0x00);
reg_write(priv, REG_PLL_SCGR1, 0x5b);
reg_write(priv, REG_PLL_SCGR2, 0x00);
reg_write(priv, REG_PLL_SCG2, 0x10);
/* Write the default value MUX register */
reg_write(priv, REG_MUX_VP_VIP_OUT, 0x24);
}
开发者ID:BORETS24,项目名称:common.git-android-4.4,代码行数:31,代码来源:tda998x_drv.c
示例14: tda998x_connector_get_modes
static int tda998x_connector_get_modes(struct drm_connector *connector)
{
struct tda998x_priv *priv = conn_to_tda998x_priv(connector);
struct edid *edid;
int n;
/*
* If we get killed while waiting for the HPD timeout, return
* no modes found: we are not in a restartable path, so we
* can't handle signals gracefully.
*/
if (tda998x_edid_delay_wait(priv))
return 0;
if (priv->rev == TDA19988)
reg_clear(priv, REG_TX4, TX4_PD_RAM);
edid = drm_do_get_edid(connector, read_edid_block, priv);
if (priv->rev == TDA19988)
reg_set(priv, REG_TX4, TX4_PD_RAM);
if (!edid) {
dev_warn(&priv->hdmi->dev, "failed to read EDID\n");
return 0;
}
drm_mode_connector_update_edid_property(connector, edid);
n = drm_add_edid_modes(connector, edid);
priv->is_hdmi_sink = drm_detect_hdmi_monitor(edid);
kfree(edid);
return n;
}
开发者ID:BORETS24,项目名称:common.git-android-4.4,代码行数:34,代码来源:tda998x_drv.c
示例15: time_driver
void time_driver() {
// Set the counter register to zero
reg_write(OSTMR_OSCR_ADDR, 0x0);
// Clear OSSR
reg_set(OSTMR_OSSR_ADDR, OSTMR_OSSR_M0);
// Update the counters
g_ms_counter = g_ms_counter + 10;
if(g_ms_counter >= 1000) {
g_ms_counter = 0;
g_s_counter = g_s_counter + 1;
if(g_s_counter >= 60) {
g_s_counter = 0;
g_m_counter = g_m_counter + 1;
if(g_m_counter >= 60) {
g_m_counter = 0;
g_h_counter = g_h_counter + 1;
}
}
}
}
开发者ID:Sushisugre,项目名称:Embedded_Gravel,代码行数:26,代码来源:time_driver.c
示例16: _recv
static int _recv(netdev2_t *netdev, char* buf, int len, void *info)
{
encx24j600_t * dev = (encx24j600_t *) netdev;
encx24j600_frame_hdr_t hdr;
(void)info;
lock(dev);
/* read frame header */
sram_op(dev, RRXDATA, dev->rx_next_ptr, (char*)&hdr, sizeof(hdr));
/* hdr.frame_len given by device contains 4 bytes checksum */
size_t payload_len = hdr.frame_len - 4;
if (buf) {
/* read packet (without 4 bytes checksum) */
sram_op(dev, RRXDATA, 0xFFFF, buf, payload_len);
/* decrement available packet count */
cmd(dev, SETPKTDEC);
dev->rx_next_ptr = hdr.rx_next_ptr;
reg_set(dev, ERXTAIL, dev->rx_next_ptr - 2);
}
unlock(dev);
return payload_len;
}
开发者ID:WilsonWangTHU,项目名称:RIOT,代码行数:30,代码来源:encx24j600.c
示例17: spi2_ios
static void spi2_ios(void)
{
u32 val;
reg_set(RCC_APB2ENR, 0x08); /* Activate PortB */
/* Configure NSS pin (PB12) */
val = reg_rd(GPIOB + 0x04);
val &= 0xFFF0FFFF;
val |= 0x00030000; /* output, 50MHz, push-pull */
reg_wr(GPIOB+0x04, val);
reg_wr(GPIO_BSRR(GPIOB), (0x01 << 12)); /* Disable SS (nss=1) */
/* Configure SCK pin (PB13) */
val = reg_rd(GPIOB + 0x04);
val &= 0xFF0FFFFF;
val |= 0x00B00000; /* output, 50MHz, AF, push-pull */
reg_wr(GPIOB+0x04, val);
/* Configure MOSI pin (PB15) */
val = reg_rd(GPIOB + 0x04);
val &= 0x0FFFFFFF;
val |= 0xB0000000; /* output, 50MHz, AF, push-pull */
reg_wr(GPIOB+0x04, val);
/* Configure MISO pin (PB14) */
val = reg_rd(GPIOB + 0x04);
val &= 0xF0FFFFFF;
val |= 0x04000000; /* input, floating */
reg_wr(GPIOB + 0x04, val);
}
开发者ID:Agilack,项目名称:plc-exstina_50,代码行数:31,代码来源:spi.c
示例18: C_IRQ_Handler
void C_IRQ_Handler() {
printf("In C_IRQ_Handler\n");
uint32_t next_time;
// unsigned int icpInt = reg_read(INT_ICIP_ADDR);
// printf("icpInt: %x\n", icpInt);
uint32_t OSCR = reg_read(OSTMR_OSCR_ADDR);
// uint32_t OSMR = reg_read(OSTMR_OSMR_ADDR(0));
// uint32_t OSSR = reg_read(OSTMR_OSSR_ADDR);
// printf("OSCR: %d, OSMR: %d, OSSR: %d\n", OSCR, OSMR, OSSR);
if(reg_read(OSTMR_OSSR_ADDR) == 1)
{
// printf("\n\n\n\ndo you get here???\n\n\n\n");
//Incrementing by 10 milliseconds
addTimer(1);
//Increment Match Register
next_time = OSCR + (OSTMR_FREQ_VERDEX);
// printf("New OSMR: %d\n", next_time);
//Store incremented value
reg_write(OSTMR_OSMR_ADDR(0), next_time);
//irq
reg_set(OSTMR_OSSR_ADDR, OSTMR_OSSR_M0);
}
//return;
printf("\n leaving C_IRQ_handler\n");
I_Handler_Cleanup();
return;
}
开发者ID:meowcatgirl,项目名称:18349,代码行数:34,代码来源:C_IRQ_Handler.c
示例19: tda998x_encoder_get_modes
static int
tda998x_encoder_get_modes(struct tda998x_priv *priv,
struct drm_connector *connector)
{
struct edid *edid;
int n;
if (priv->rev == TDA19988)
reg_clear(priv, REG_TX4, TX4_PD_RAM);
edid = drm_do_get_edid(connector, read_edid_block, priv);
if (priv->rev == TDA19988)
reg_set(priv, REG_TX4, TX4_PD_RAM);
if (!edid) {
dev_warn(&priv->hdmi->dev, "failed to read EDID\n");
return 0;
}
drm_mode_connector_update_edid_property(connector, edid);
n = drm_add_edid_modes(connector, edid);
priv->is_hdmi_sink = drm_detect_hdmi_monitor(edid);
kfree(edid);
return n;
}
开发者ID:0x000000FF,项目名称:edison-linux,代码行数:27,代码来源:tda998x_drv.c
示例20: pad_with_false
void pad_with_false( unsigned limit_reg )
{
unsigned i = arg_count_reg;
while (i < limit_reg)
reg_set( i++, FALSE_OBJ );
}
开发者ID:Fuhuiang,项目名称:rscheme,代码行数:7,代码来源:vinsns.c
注:本文中的reg_set函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论