رفتن به مطلب
ایران چیپ

amir_yazdi

Administrators
  • تعداد ارسال ها

    68
  • تاریخ عضویت

  • آخرین بازدید

تمامی مطالب نوشته شده توسط amir_yazdi

  1. amir_yazdi

    PIC18F2455/2550/4455/4550

    0 دریافت

    PIC18F2455/2550/4455/4550
  2. amir_yazdi

    LPC176x/5x User manual - NXP Semiconductors

    0 دریافت

    UM10360 LPC176x/5x User manual - NXP Semiconductors
  3. amir_yazdi

    کتاب Building a Home Security System with Raspberry Pi

    1 دریافت

    کتاب Building a Home Security System with Raspberry Pi
  4. amir_yazdi

    کتاب Mastering Visual Studio 2019

    0 دریافت

    کتاب الکترونیکی Mastering Visual Studio 2019 برای خواندن کتاب های الکترونیکی شما نیاز به کتابخوان الکترونیکی دارید برای دریافت کتابخوان الکترونیکی به لینک زیر مراجعه کنید کتابخوان الکترونیکی Ebook Reader
  5. amir_yazdi

    کتابخوان الکترونیکی Ebook Reader

    0 دریافت

    کتابخوان الکترونیکی Ebook Reader
  6. amir_yazdi

    کتاب آموزش تازه کاران Raspberry Pi v1

    نگارش 1.0.0

    3 دریافت

    کتاب آموزش تازه کاران Raspberry Pi v1
  7. amir_yazdi

    کتاب پروژه Raspberry Pi v4

    نگارش 4.0.0

    1 دریافت

    کتاب پروژه Raspberry Pi v4
  8. amir_yazdi

    کتاب پروژه Raspberry Pi v3

    نگارش 3.0.0

    1 دریافت

    کتاب پروژه Raspberry Pi v3
  9. amir_yazdi

    کتاب پروژه Raspberry Pi v2

    نگارش 2.0.0

    1 دریافت

    کتاب پروژه Raspberry Pi v2
  10. amir_yazdi

    کتاب پروژه Raspberry Pi v1

    نگارش 1.0.0

    1 دریافت

    کتاب پروژه Raspberry Pi v1
  11. amir_yazdi

    Dev-C++

    نگارش 5.11

    2 دریافت

    نرم افزار برنامه نویسی به زبان C/C++
  12. سلام دوست عزیز در برنامه ایی که شما استفاده میکنید از کتابخانه ایی استفاده میکنه که 136 عدد کد مربوط به آمریکای شمالی و 139 عدد کد مربوط به اتحادیه اروپا را تست میکنه که دلیل طولانی بودن زمان هم همین هستش حال شما باید فقط کد مورد نظرتو فراخوانی کنی حال برای این کار به تابع sendAllCodes() مراجعه کنید و از حالت ارسال شمارشی خارج و فقط دستور مورد نظرتو وارد کن البته میتونی فقط تابع مورد نظرتو در تابع loop() هم وارد کنید اگه مشکلی داشتی بگو راهنماییت کنم یاحق
  13. amir_yazdi

    مشکل نمایش دما و رطوبت با sht1x

    سلام متغییر Value که داخل تابع ReadTemperature هست local هست و شما نمیتونی مقدارشو از خارج تابع بخونی اگر تابع ReadTemperature را نگاه کنی از نوع long هست و مقدار Value درانتها return شده در خط اولی که در حلقه while نوشتی تابع را فراخوانی کردی ولی مقدار برگشتی را نخواندی ReadTemperature(); که باید به شکل زیر باشه Value = ReadTemperature(); نکته Value که اینجا هست را خودت در بالا تعریف کردی قبل از تابع main و ربطی به متغییر Value داخل ReadTemperature که local هستش نداره long Value; یاحق
  14. amir_yazdi

    مشکل نمایش دما و رطوبت با sht1x

    سلام برنامه تست کردم مشکلی نداره فقط کافه پایه Data که در اینجا A.1 انتخاب کردید را بوسیله یک مقاومت 4.7 کیلو به زمین (منفی) متصل کنید (pull-down) یاحق
  15. amir_yazdi

    مشکل نمایش دما و رطوبت با sht1x

    سلام کتابخانه sht1x دستور فعال سازی اولیه sht1x_init(); خواندن دما ReadTemperature(); خواندن رطوبت ReadHumidity(); باز اگر مشکلی باهاش داشتی بگو یاحق sht1x.rar
  16. amir_yazdi

    مشکل نمایش دما و رطوبت با sht1x

    سلام پروتکلی که سری sht1x استفاده میکنه i2c هستش ولی شما تو برنامه ات ازش استفاده نکردی و خروجی سنسور رو به این شکل نمیتونی بخونی باید کتابخانه i2c را فراخوانی کنی insert this code to your project -->> #include // I2C Bus functions و از دستوراتش برای خواندن سنسورت استفاده کنی اگر تو راه اندازیش به مشکلی خوردی بگو تا راهنمایت کنم یاحق
  17. سلام فایل ها را از حالت فشرده خارج کرد و فایل hex را در پروژه proteus قرار داده شده در زیر وارد کنید یاحق uartnum_iranchip.rar uartnum_proteus_iranchip.rar
  18. amir_yazdi

    ساخت Amazon Echo با رزبری پای

    ساخت echo speaker شرکت Amazon بصورت تصویری https://iranchip.ir/jwplayer/raspberry/Installing Alexa Voice Service to Raspberry Pi.MP4 یا حق
  19. amir_yazdi

    آموزش pic ccs

    سلام دستورات I2C در CCS و نحوه استفاده از آن برای تنظیم I2C از دستور زیر استفاده میکنیم در مثال پایین MASTER حالت I2C FAST سرعت انتقال داده SCL پایه همزمان سازی SDA پایه انتقال داده #use i2c(Master,Fast, scl=PIN_C3, sda=PIN_C4) دستور i2c_start در زمان شروع انتقال داده START با نماد ( S ) و یا در زمان تغییر حالت RESTART با نماد ( R ) بکار میرود [/color]i2c_start();[color=#000000] دستور i2c_stop در پایان و بعد از اتمام دستورات I2C بکار میرود و نماد آن ( P ) می باشد i2c_stop(); دستور i2c_write برای ارسال آدرس و داده بکار میرود i2c_write (data); دستور i2c_read برای در یافت داده بکار میرود data = i2c_read (); نکته : دستور i2c_read در داخل پرانتز مقدار صفر (NACK) و 1 (ACK) را میگیرد که در حالت عادی مقدار آن یک (ACK) میباشد و زمانی که شما آخرین بایت را میخوانید باید مقدار آن را صفر(NACK) کنید data1 = i2c_read (1); data2 = i2c_read (0); در مثال زیر بر روی حافظه 24AA512 از نوع EEPROM با ظرفیت 512K مینویسیم مقدار 0XA0 آدرس حافظه ADDRH و ADDRL آدرس موقعیتی از حافظه که میخواهیم بر روی آن بنویسیم ( این آی سی به دلیل 16 بیتی بودن آدرس ها باید از 2 آدرس HIGH و LOW استفاده شود) DATA مقداری که میخواهیم بر روی حافظه ذخیره شود i2c_start(); i2c_write(0xA0); i2c_write(ADDRH); i2c_write(ADDRL); i2c_write(DATA); i2c_stop(); در مثال زیر از روی حافظه 24AA512 از نوع EEPROM با ظرفیت 512K می خوانیم START دوم برای تغییر حالت به خواندن میباشد (RESTART) و بیت R/W در آدرس نیز همانطور که در دیتاشیت ذکر شده تغییر کرده برای نوشتن (0XA0) و برای خواندن (0XA1) i2c_start(); i2c_write(0xA0); i2c_write(ADDRH); i2c_write(ADDRL); i2c_start(); i2c_write(0xA1); DATA = i2c_read (0); i2c_stop(); نکته : پایه های I2C باید بوسیله مقاومت PULL UP شوند یاحق
  20. amir_yazdi

    آموزش pic ccs

    سلام دستورات UART در CCS برای استفاده از UART در CCS در ابتدا باید تنظیمات #USE RS232 را فراخوانی کنیم در مثال زیر پین های سخت افزاری سریال و نرخ داده (سرعت انتقال) 9600 تنظیم شده #use rs232(UART1,baud=9600) در مثال زیر از پین B6 و B7 برای UART بصورت نرم افزاری استفاده شده و با استفاده از دستور INVERT میتوان بصورت مستقیم و بدون نیاز به MAX232 و مبدل های دیگر مستقیم به کامپیوتر متصل کرد #use rs232(baud=9600, xmit=PIN_B6,rcv=PIN_B7,INVERT) دستور STREAM به ما اجازه میدهد که بیش از یک پورت سریال تعریف کنیم #use rs232(baud=9600, xmit=PIN_B6,rcv=PIN_B7,INVERT,STREAM=RS1) #use rs232(baud=9600, xmit=PIN_B5,rcv=PIN_B4,STREAM=RS2) #use rs232(baud=115200, xmit=PIN_B3,STREAM=RS3) راسال کاراکتر با دستور putc انجام میشود putc("A"); در صورت داشتن چند پورت UART و استفاده از STREAM دستور زیر را استفاده میکنیم fputc ("A", stream); دریافت کاراکتر با دستور getc انجام میشود value = getc (); در صورت داشتن چند پورت UART و استفاده از STREAM دستور زیر را استفاده میکنیم value = fgetc (stream); راسال رشته با دستور puts انجام میشود puts ( "iranchip"); در صورت داشتن چند پورت UART و استفاده از STREAM دستور زیر را استفاده میکنیم fputs ( "iranchip", stream); دریافت رشته با دستور gets انجام میشود value = gets (); در صورت داشتن چند پورت UART و استفاده از STREAM دستور زیر را استفاده میکنیم value = fgets (stream); دستور kbhit در صورتی که داده ایی بر روی پایه دریافت پورت UART دریافت شود مقدار یک (TRUE) را برمیگرداند در غیر اینصورت مقدار صفر(FALSE) value = kbhit(); در صورت داشتن چند پورت UART و استفاده از STREAM دستور زیر را استفاده میکنیم value = kbhit (stream); دستور printf برای ارسال انواع داده اعم از کاراکتر , رشته , اعشاری , اعداد صحیح و هگزال و ..... بکار میرود printf("iranchip %c %s %u %lu %X %f \n\r",A,B,C,D,E,F); نکته: c% متغیر را بصورت کاراکتر نمایش میدهد s% متغیر را بصورت رشته نمایش میدهد u% متغیر را بصورت عدد صحیح 8 بیتی نا منفی نمایش میدهد d% متغیر را بصورت عدد صحیح 8 بیتی نمایش میدهد lu% متغیر را بصورت عدد صحیح +8 بیتی نا منفی نمایش میدهد ld% متغیر را بصورت عدد صحیح +8 بیتی نمایش میدهد x% متغیر را بصورت هگزال 8 بیتی نمایش میدهد lx% متغیر را بصورت هگزال +8 بیتی نمایش میدهد f% متغیر را بصورت عدد اعشاری نمایش میدهد یاحق
  21. amir_yazdi

    آموزش pic ccs

    سلام استفاده از پین ها و پورت ها بعنوان خروجی و ورودی در کامپایلر ccs در حالت کلی نیازی به تعریف خروجی ها و ورودی ها در ابتدای برنامه نیست و خود کامپایلر این کار را انجام میدهد البته دستوراتی برای این کار وجود دارد که بعدا به برسی آنها میپردازیم دستور output_high(pin) مقدار پین مورد نظر را یک (high) میکند output_high(PIN_B0); دستور output_low(pin) مقدار پین مورد نظر را صفر (low) میکند output_low(PIN_B0); دستور output_x (value) برای مقدار دهی به یک پورت استفاده میشود OUTPUT_B(0xf0); دستور output_bit (pin, value) مقدار پین مورد نظر را از متغیر (value) میگیرد نکته:متغیر باید 1 بیتی باشد در غیر اینصورت مقدار بیت اول متغیر را فقط در نظر میگیرد output_bit( PIN_B0, 0); دستور output_float (pin) پین مورد نظر را در حالت open collector خروجی میکند نکته:در این حالت باید پایه با مقاومت پول اپ (pull up) شود output_float(pin_B0); دستور input (pin) مقدار پین مورد نظر را بعنوان ورودی میگیرد نکته:در صورتی که خارج از شرط استفاده شود و برای مقدار دهی متغیر باشد متغیر باید 1 بیتی باشد در غیر اینصورت مقدار بیت اول متغیر را تغییر میدهد A=input(PIN_B1); دستور input_state (pin) حالت پین را از لحاظ HIGH یا LOW برمیگرداند نکته:در صورتی که خارج از شرط استفاده شود و برای مقدار دهی متغیر باشد متغیر باید 1 بیتی باشد در غیر اینصورت مقدار بیت اول متغیر را تغییر میدهد A = input_state (pin_B0); دستور input_change_x () حالت پورت را چک میکند و با بار قبل که همین دستور را اجرا کرده باشید مقایسه میکند در صورتی که مقدار پین های پورت تغییر کرده باشد عدد 1 (TRUE) و اگر تغییر نکرده باشد عدد 0 (FALSE) را برمیگرداند نکته:در صورتی که خارج از شرط استفاده شود و برای مقدار دهی متغیر باشد متغیر باید 1 بیتی باشد در غیر اینصورت مقدار بیت اول متغیر را تغییر میدهد A = input_change_b( ); یاحق
  22. amir_yazdi

    آموزش pic ccs

    سلام تعریف متغییر انواع متعددی متغیر , ثابت و داده وجود داره که من برای شروع ساده ترین و کاربردی ترین آموزش میدم و در آموزش های بعدی مدل های مختلف اونو در مثال ها آموزش میدم انوع متغیر در ccs متغیر های مشترک int1 int8 int16 int32 float (اعشاری) متغیر های سری 24 بیتی به بالا int48 int64 int1 data; int8 a,b,c,d; int16 e; int32 f,g; float h,i; یاحق
  23. amir_yazdi

    آموزش pic ccs

    سلام دستور BREAK در هرجا بکار رود از حلقه (LOOP) یا سویچ (SWITCH) مورد نظر در همانجا بدون انجام دستورات بعد از آن خارج میشود در مثال زیر A و B مقدار میگیرند ولی C و D مقدار نمیگیرند و مقدار قبلی خود را حفظ میکنند VOID test() { A= 0; B= 1; BREAK; C= 2; D= 3; } دستور continue این دستور برای از سر گیری حلقه بکار برده میشود در مثال زیر تا زمانی که مقدار A به 10 نرسد حلقه به ابتدا برمیگردد و دوباره دستورات را اجرا میکند VOID test() { A++; B= 1; IF (A continue; C= 2; D= 3; } یاحق
  24. amir_yazdi

    آموزش pic ccs

    سلام برچسب گذاری یا لیبل برچسب گذاری بوسیله دونقطه (COLON) انجام میشود ( : ) و به وسیله دستور GOTO به برچست یا لیبل مورد نظر میرویم label1: A = 1; goto label1; یا حق
  25. amir_yazdi

    آموزش pic ccs

    سلام دستور RETURN مقدار مورد نظر ما را به متغییر برمیگرداند و همزمان از حلقه خارج می شود در مثال زیر مقدار A برابر با 10 میشود int test() { B = 10; return b; } void main() { A = test(); } یاحق
×
×
  • اضافه کردن...