با سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.
اطلاعیه
Collapse
No announcement yet.
کار نکردن یک ستون از keypad با AVR
Collapse
X
-
پاسخ : کار نکردن یک ستون از keypad با AVR
نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست هابا سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.
خوب فکر کنم افراد حزب چپ گرایان کشور گینه بیسائو مسئولش باشن!!!!
حداقل یه کدی، مداری، نقشه ای چیزی بذارید تا بشه نظر داد
- تشکرها 1
-
پاسخ : کار نکردن یک ستون از keypad با AVR
char keypad()
{
PORTC.0=0;
if(PINC.4==0)
{delay_ms(30);
if(PINC.4==0){
k=1;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{delay_ms(30);
if(PINC.5==0){
k=2;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{delay_ms(30);
if(PINC.6==0){
k=3;
ragham++;
while(PINC.6==0);
}
}
PORTC.0=1;
PORTC.1=0;
if(PINC.4==0)
{delay_ms(30);
if(PINC.4==0){
k=4;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{delay_ms(30);
if(PINC.5==0){
k=5;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{delay_ms(30);
if(PINC.6==0){
k=6;
ragham++;
while(PINC.6==0);
}
}
PORTC.1=1;
PORTC.2=0;
if(PINC.4==0)
{delay_ms(30);
if(PINC.4==0){
k=7;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{delay_ms(30);
if(PINC.5==0){
k=8;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{delay_ms(30);
if(PINC.6==0){
k=9;
ragham++;
while(PINC.6==0);
}
}
PORTC=0xff;
PORTC.3=0;
if(PINC.4==0)
{delay_ms(30);
if(PINC.4==0){
//glcd_clear();
//PORTB.3=1;
k=11;
//return k=reset;
while(PINC.4==0);
}
}
if(PINC.5==0)
{delay_ms(30);
if(PINC.5==0){
k=0;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{delay_ms(30);
if(PINC.6==0){
// symbol=
k=12;
while(PINC.6==0);
}
}
PORTC.3=1;
return k;
}جدیدترین ویرایش توسط saeedreisi75@gmail.com; ۱۴:۵۸ ۱۳۹۸/۰۳/۱۰.
دیدگاه
-
پاسخ : کار نکردن یک ستون از keypad با AVR
خوب من برنامه شما رو کمی مرتب کردم و به این شکل در آوردم:
char keypad(){
PORTC.0=0;
if(PINC.4==0)
{
delay_ms(30);
if(PINC.4==0)
{
k=1;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{
delay_ms(30);
if(PINC.5==0)
{
k=2;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{
delay_ms(30);
if(PINC.6==0)
{
k=3;
ragham++;
while(PINC.6==0);
}
}
PORTC.0=1;
PORTC.1=0;
if(PINC.4==0)
{
delay_ms(30);
if(PINC.4==0)
{
k=4;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{
delay_ms(30);
if(PINC.5==0)
{
k=5;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{
delay_ms(30);
if(PINC.6==0)
{
k=6;
ragham++;
while(PINC.6==0);
}
}
PORTC.1=1;
PORTC.2=0;
if(PINC.4==0)
{
delay_ms(30);
if(PINC.4==0)
{
k=7;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{
delay_ms(30);
if(PINC.5==0)
{
k=8;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{
delay_ms(30);
if(PINC.6==0)
{
k=9;
ragham++;
while(PINC.6==0);
}
}
PORTC=0xff;
PORTC.3=0;
if(PINC.4==0)
{
delay_ms(30);
if(PINC.4==0)
{
//glcd_clear();
//PORTB.3=1;
k=11;
//return k=reset;
while(PINC.4==0);
}
}
if(PINC.5==0)
{
delay_ms(30);
if(PINC.5==0)
{
k=0;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{
delay_ms(30);
if(PINC.6==0)
{
// symbol=
k=12;
while(PINC.6==0);
}
}
PORTC.3=1;
return k;
}
ظاهرا اون طوری که فهمیدم برنامه به سطر ها مقدار صفر میده و از ستون ها میخونه. فقط اول کد باید پول آپ پین های متصل به ستون ها فعال بشه که نشده. برنامه تو نگاه اول من مشکل خاصی نداره و اگر یک ستون خاص کار نمیکنه، احتمالا مشکل سخت افزاریه. باید با یک برنامه ساده دیگه بررسی کنید که پین متصل به ستون اول که میگید مشکل داره سالمه یا نه. اگر سالم بود احتمالا خود کیپد مشکل داره. کیپدهای ارزون خرابی زیاد دارن.
- تشکرها 1
دیدگاه
-
پاسخ : کار نکردن یک ستون از keypad با AVR
نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست ها;کیپد رو هم تست کردم(مثلا به سطرها ولتاژ میدادم و با زدن کلید از ستون ها خروجی میگرفتم یا برعکس)سالم بود.نمیدونم چکارش کنم.تو پروتئوس هم درست جواب میده.
Sent from my LG-H870S using Tapatalk
- تشکرها 1
دیدگاه
-
پاسخ : کار نکردن یک ستون از keypad با AVR
نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست هابا سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.
اگه برنامه ات درسته (وقت نکردم بخونم)، مشکل مربوط به فعال بودن پورت JTAG است!
که به صورت پیش فرض روی پورت C مپ شده!
برو فیوز بیتش رو غیر فعال کن، انشاالله حل میشه!
مراقب باش، بقیه فیوز بیتها رو به هم نریزی!!◙◙◙◙◙ میخوام به دوستان یه کتاب معرفی کنم! وقت کردید، بخونید - اسمش هست قرآن، سال نشر 10، نویسنده: خدا . ◙◙◙◙◙
- تشکرها 2
دیدگاه
-
پاسخ : کار نکردن یک ستون از keypad با AVR
نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست هابا سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.
به نظرم مشکل شما %99 به لینک زیر مربوط است..
Switch Debouncing
*** يا راهي خواهم يافت، يا راهي خواهم ساخت ... ***
- تشکرها 1
دیدگاه
-
پاسخ : کار نکردن یک ستون از keypad با AVR
نوشته اصلی توسط saeedreisi75@gmail.com نمایش پست هابا تشکر از همه عزیزان.پایه های B رو اختصاص دادم به صفحه کلید درست شد.فکر کنم اشکال از پایه های C بود.
Sent from my LG-H870S using Tapatalk
- تشکرها 1
دیدگاه
دیدگاه