امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 1
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در INT 0
نویسنده پیام
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #1
Cool  مشکل در INT 0
سلام بر دوستان
میخواستم دستوری با CodeVision بنویسم که هر موقع کلید را بزنم یک INT 0 از نوع لبه پایین رونده رخ بدهد و در INT 0 یک متغیر را زیاد کنم و روی LCD نمایش بدم
کدش نوشتم ولی نمیدونم چرا قبل از این که کلید بزنم خودش متغیر زیاد میکنه
و کلید عمل نمیکنه
کدش میزارم :
کد php:
#include <mega32.h>
#include <delay.h>
#include <stdio.h>
#include <alcd.h>

unsigned char i d[20];

interrupt [EXT_INT0void ext_int0_isr(void)
{
i++;

}

void main(void)
{

lcd_init(16);

// Global enable interrupts
#asm("sei")

while (1)
      {
      
sprintf(d,"value=%3.3d",i);
      
lcd_gotoxy(0,0);
      
lcd_puts(d);

      }


"... the quieter you become the more you are able hear "
۱۴-آبان-۱۳۹۳, ۱۳:۲۵:۲۴
ارسال‌ها
پاسخ
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #2
RE: مشکل در INT 0
اینم مدارش    

"... the quieter you become the more you are able hear "
(آخرین ویرایش در این ارسال: ۱۴-آبان-۱۳۹۳, ۱۳:۳۶:۳۲، توسط hosseinip.)
۱۴-آبان-۱۳۹۳, ۱۳:۳۵:۳۸
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #3
RE: مشکل در INT 0
سلام.
وقفه خارجی صفر رو تعریف نکردی.
sprintf رو هم اشتباه نوشتی
اینم بنرامه اصلاح شده :
کد:
#include <mega32.h>
#include <delay.h>
#include <stdio.h>
#include <alcd.h>

unsigned char i , d[20];

interrupt [EXT_INT0] void ext_int0_isr(void)
{
    i++;
}

void main(void)
{
GICR|=0x40;
MCUCR=0x02;
MCUCSR=0x00;
GIFR=0x40;
#asm("sei")
while (1)
{
    sprintf(d,"value=%d",i);
    lcd_gotoxy(0,0);
    lcd_puts(d);
}

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
(آخرین ویرایش در این ارسال: ۱۴-آبان-۱۳۹۳, ۱۵:۰۲:۵۶، توسط aKaReZa75.)
۱۴-آبان-۱۳۹۳, ۱۵:۰۱:۴۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : a.mehran, hosseinip, رسول, Ambassador
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #4
RE: مشکل در INT 0
بازم همون مشکل داره
قبل از این که کلید بزنم خودش متغیر زیاد میکنه
و کلید عمل نمیکنه

"... the quieter you become the more you are able hear "
۱۴-آبان-۱۳۹۳, ۱۵:۱۹:۳۹
ارسال‌ها
پاسخ
a.mehran آفلاین
مدیر بخش
*****

ارسال‌ها: 1,029
موضوع‌ها: 93
تاریخ عضویت: فروردین ۱۳۹۲

تشکرها : 5125
( 4490 تشکر در 1882 ارسال )
ارسال: #5
RE: مشکل در INT 0
(۱۴-آبان-۱۳۹۳, ۱۵:۱۹:۳۹)hosseinip نوشته است: بازم همون مشکل داره
قبل از این که کلید بزنم خودش متغیر زیاد میکنه
و کلید عمل نمیکنه
مقاومت پول آپ یا پول داون نزاشتی حتما

silent people have the loudest minds شادی − بهینه شده برای ورژن جدید شادی − بهینه شده برای ورژن جدید
سایت من Abrdade.com
۱۴-آبان-۱۳۹۳, ۱۵:۲۲:۵۲
ارسال‌ها
پاسخ
تشکر شده توسط : hosseinip, babyy
a.mehran آفلاین
مدیر بخش
*****

ارسال‌ها: 1,029
موضوع‌ها: 93
تاریخ عضویت: فروردین ۱۳۹۲

تشکرها : 5125
( 4490 تشکر در 1882 ارسال )
ارسال: #6
RE: مشکل در INT 0
(۱۴-آبان-۱۳۹۳, ۱۵:۲۲:۵۲)a.mehran نوشته است:
(۱۴-آبان-۱۳۹۳, ۱۵:۱۹:۳۹)hosseinip نوشته است: بازم همون مشکل داره
قبل از این که کلید بزنم خودش متغیر زیاد میکنه
و کلید عمل نمیکنه
مقاومت پول آپ یا پول داون نزاشتی حتما
اگه تو برنامه تعریفی کردی پایه = 0 بشه یعنی کلید فشرده شده ،یه مقاومت 10 کیلو به میکرو و +5 ولت بزن
یا
اگه تو برنامه تعریفی کردی پایه = 1 بشه یعنی کلید فشرده شده ،یه مقاومت 10 کیلو به میکرو و -5(gnd) ولت بزن

silent people have the loudest minds شادی − بهینه شده برای ورژن جدید شادی − بهینه شده برای ورژن جدید
سایت من Abrdade.com
۱۴-آبان-۱۳۹۳, ۱۵:۲۴:۱۵
ارسال‌ها
پاسخ
تشکر شده توسط : hosseinip, babyy, رسول, Ambassador
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #7
RE: مشکل در INT 0
مقاومت pull up گذاشتم
بازم همون مشکل داره
قبل از این که کلید بزنم خودش متغیر زیاد میکنه
و کلید عمل نمیکنه
اینم مدارش :
   

"... the quieter you become the more you are able hear "
(آخرین ویرایش در این ارسال: ۱۴-آبان-۱۳۹۳, ۱۵:۳۲:۳۴، توسط hosseinip.)
۱۴-آبان-۱۳۹۳, ۱۵:۲۶:۱۲
ارسال‌ها
پاسخ
تشکر شده توسط : a.mehran, babyy, Ambassador
a.mehran آفلاین
مدیر بخش
*****

ارسال‌ها: 1,029
موضوع‌ها: 93
تاریخ عضویت: فروردین ۱۳۹۲

تشکرها : 5125
( 4490 تشکر در 1882 ارسال )
ارسال: #8
RE: مشکل در INT 0
interrupt [EXT_INT0] void ext_int0_isr(void)
من سی بلد نیستم ولی احتمالا int0 یا portd.2 باید کلید باشه
----------
یا اینکه اون مثبت 5 ولت نباشه

silent people have the loudest minds شادی − بهینه شده برای ورژن جدید شادی − بهینه شده برای ورژن جدید
سایت من Abrdade.com
۱۴-آبان-۱۳۹۳, ۱۵:۳۴:۰۶
ارسال‌ها
پاسخ
تشکر شده توسط : hosseinip
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #9
RE: مشکل در INT 0
پورت PORTB.2/INT0 ورودی INT (ورودی تحریک وقفه) است و من در اینجا کلید وصل کردم به ابن پین
وقتی پایه ای را روی مد INT تنظیم میکنیم دیگر نمی توانیم از pull up و pull down برنامه استفاده کنیم بنابرین باید خودمون اون به مدار اضافه کنیم
هر موقع کلید را بزنم یک INT 0 از نوع لبه پایین رونده رخ بدهد و در INT 0 یک متغیر را زیاد کنم و روی LCD نمایش بدم
کدش نوشتم ولی نمیدونم چرا قبل از این که کلید بزنم خودش متغیر زیاد میکنه
و کلید عمل نمیکنه

"... the quieter you become the more you are able hear "
۱۴-آبان-۱۳۹۳, ۱۵:۵۱:۲۲
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #10
RE: مشکل در INT 0
من وقتی کد رو نوشتم یاد مرفت عکسه مدارو ببینم ، مدارت اشتباس.
کلید رو اشتباه وصل کردی .
اونو به int2 وصل کردی که باید به int0 وصل کنی

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
(آخرین ویرایش در این ارسال: ۱۴-آبان-۱۳۹۳, ۱۶:۲۲:۳۲، توسط aKaReZa75.)
۱۴-آبان-۱۳۹۳, ۱۶:۲۰:۱۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hosseinip, Ambassador, a.mehran, رسول
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #11
RE: مشکل در INT 0
درود بر شما
اونو int0 وصل کردم مشکلم حل شد
متشکرمHappyHappyHappy
اینم مدارش :
   

"... the quieter you become the more you are able hear "
۱۴-آبان-۱۳۹۳, ۱۶:۳۱:۰۵
ارسال‌ها
پاسخ
تشکر شده توسط : a.mehran, babyy


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS