ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2

موضوع: twi (i2c) + lpc2378

  1. #1
    2007/10/04
    37
    0

    twi (i2c) + lpc2378

    سلام من کد زیر رو برای ارسال دیتا بر روی ایپرام نوشتم اما هیچی روی اپیرام نوشته نمیشه، سخت افزار درسته و همینطور آدرس سخت افزاری و من مطمئن هستم مشکل از نرم افزارم هست. با تشکر

    کد:
    #include <LPC23xx.h> #include <irq.h> #include <target.h> #include "uart.h" #include <swi.h> #include <stdio.h> #include "type.h" unsigned int I2C_sla; unsigned int I2C_adr; unsigned char *I2C_buf; unsigned char data_buf[8] = {0x62,0x61,0x68,0x61,0x64,0x6F,0x72,0x20}; unsigned char data_read[8]; unsigned int read; unsigned int I2C_num; unsigned int i; void delay(int); void twi_write(unsigned char id, unsigned int address, unsigned char *s, unsigned int num); void i2c_init(void); void i2c_isr(void); int main (void) { PINSEL6 = 0x00000000; FIO3DIR0 = 0xFF; PCONP |= (1 << 19); FIO3CLR0 = 0xff; FIO3SET0 = 1; uart_init(); putcharx(0x42); FIO3CLR0 = 0xff; FIO3SET0 = 2; init_VIC(); FIO3CLR0 = 0xff; FIO3SET0 = 3; install_irq(I2C1_INT, i2c_isr, LOWEST_PRIORITY); FIO3CLR0 = 0xff; FIO3SET0 = 4; IntEnable(); FIO3CLR0 = 0xff; FIO3SET0 = 5; //printf("writing to eeprom..."); FIO3CLR0 = 0xff; FIO3SET0 = 6; i2c_init(); FIO3CLR0 = 0xff; FIO3SET0 = 7; for(i=1;i<9;i++) { twi_write(0xA0, i, data_buf, 8); delay(10); } for(i=0;i<8;i++) { putcharx(data_read[i]); FIO3CLR0 = 0xff; FIO3SET0 = data_read[i]; delay(100); } FIO3CLR0 = 0xff; FIO3SET0 = 0xFF; while(1); } void i2c_isr(void) { FIO3CLR0 = 0xff; FIO3SET0 = 0x55; switch(I21STAT & 0xF8) { case (0x08): if(read == 1) //SLA + R { I21DAT = I2C_sla & 0xFE; } else //SLA + W { I21DAT = I2C_sla; } I21CONCLR = (1 << 3)| /* SI */ (1 << 5); /* STA */ break; case (0x10): I21DAT = I2C_sla; I21CONCLR = 0x28; //slave address + W, ACK case (0x18): case (0x28): if (I2C_num > 0) { I21DAT = *I2C_buf++; I21CONCLR = 0x28; /*STA */ I2C_num--; } else { I21CONSET = (1 << 4); /* STO */ I21CONCLR = 0x28; /* STA */ } break; default: break; } I21CONCLR = 0x08; // clear I2C interrupt flag VICVectAddr = 0x00; } void delay(int x) { int j; x = x * 10000; for(j=0;j<x;j++); } void twi_write(unsigned char id, unsigned int address, unsigned char *s, unsigned int num) { I2C_sla = id; I2C_adr = address; I2C_num = num; I2C_buf = s; read = 0; I21CONCLR = (1 << 2)| /* AA */ (1 << 3)| /* SI */ (1 << 5); /* STA */ I21CONSET = (1 << 5)| /* STA */ (1 << 6); /* I2CEN*/ delay(10); } void i2c_init() { //I2Cbitfrequency = fPCLK / (2CSCLH + I2CSCLL) PINSEL0 |= 0x0000000F; // set P0.0 and P0.1 to I2C1 SDA and SCK I21SCLL = (Fpclk / 200000 + 1) / 2; I21SCLH = (Fpclk / 200000) / 2; I21CONCLR = 0x000000FF; I21CONSET = 0x00000040; }
    {امضاء خلاف قوانین}
  2. #2
    2006/12/19
    تهران
    711
    1

    پاسخ : twi (i2c) + lpc2378

    سلام
    اگه ممکنه کل پروژه رو پلود کنید تا بتستیم با Jlink
    آخه چند تا هدر include کردی که معلوم نیست توشون چی کار کردی
    اگه jlink داری خودتم میتونی بتستی
    اسم آی سی EEPROM هم بگید
نمایش نتایج: از 1 به 2 از 2

موضوعات مشابه

  1. PLL در LPC2378
    توسط siavash007 در انجمن NXP
    پاسخ: 1
    آخرين نوشته: 2013/03/20, 10:21
  2. ترینر برد ARM LPC2378
    توسط hosein-eghbali در انجمن NXP
    پاسخ: 15
    آخرين نوشته: 2012/07/25, 11:30
  3. راه اندازي spi در LPC2378
    توسط mahdi_el2000 در انجمن NXP
    پاسخ: 1
    آخرين نوشته: 2011/04/29, 17:05
  4. USB Bootloader for LPC2378
    توسط spartan II در انجمن NXP
    پاسخ: 0
    آخرين نوشته: 2010/12/10, 09:54
  5. SDRAM & LPC2378
    توسط shahinbahari در انجمن NXP
    پاسخ: 0
    آخرين نوشته: 2010/10/04, 19:50

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •