انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: hamed_ubuntu در 26 دی 1393، 08:22 ب‌ظ

عنوان: مشکل در راه اندازی LCD کاراکتری
ارسال شده توسط: hamed_ubuntu در 26 دی 1393، 08:22 ب‌ظ
با سلام
دوستان میخوام یه LCD ‌کاراکتری ۱۶*۲ راه اندازی کنم.
کتابخونه lcd.h‌رو هم به پروژه اضافه میکنم.
و توی قسمت LCD.h پین های  LCD ‌رو هم به پایه های میکرو(اونایی که خودم به LCD ‌وصل کردم)معرفی میکنم.
و کد میزنم و برنامه رو مینویسم و خطا میده.
اینم بگم کامپایل که میکنم AVRdude  هم فعاله و برنامه باید اگه خطایی نباشه رو آی سی منتقل بشه.
این کد های تغییر داده شده lcd.h
#ifndef _LCD_H
#define _LCD_H
#include <avr/io.h>
#include <util/delay.h>

//LCD interface

#define PORT_LCD        PORTC
#define DDR_LCD DDRC
#define RS              PB5
#define RW              PC5
#define EN              PC4
#define DB4             PC3
#define DB5             PC2
#define DB6             PC1
#define DB7             PC0
#define SETBIT(address,bit)  (address |= (1<<bit))
#define CLRBIT(address,bit)  (address &= ~(1<<bit))
#define SET_EN SETBIT(PORT_LCD,EN)
#define CLR_EN CLRBIT(PORT_LCD,EN)
#define SET_RS SETBIT(PORT_LCD,RS)
#define CLR_RS CLRBIT(PORT_LCD,RS)
#define SET_RW SETBIT(PORT_LCD,RW)
#define CLR_RW CLRBIT(PORT_LCD,RW)
 



// prototipe fungsi
void enable(void);                 // enable fulse for LCD
void lcd_init(void);               // intialization LCD
void lcd_putchar(unsigned char c); // send character to LCD
void lcd_putstr(char *s);          // send string to LCD
void lcd_clear(void);              // clear display 
void lcd_gotoxy(unsigned char i,unsigned char j);  //move LCD cursor position

#endif

اینم کد اصلی:
#include "lcd.h"
#include <util/delay.h>
int main(void)
{
  lcd_init();
  while(1)
  {
lcd_gotoxy(0,0);lcd_putstr("hello world");
_delay_ms(200);
lcd_clear();
  }
  return 0;
}

اینم خطا:
Description Resource Path Location Type
make: *** [test lcd.elf] Error 1 test lcd C/C++ Problem
عنوان: پاسخ : مشکل در راه اندازی LCD کاراکتری
ارسال شده توسط: دانیال بهزادی در 27 دی 1393، 12:17 ب‌ظ
مدل میکرو و ال‌سی‌دی، و کتاب‌خونه‌ای که استفاده مي‌کنی رو بذار
عنوان: پاسخ : مشکل در راه اندازی LCD کاراکتری
ارسال شده توسط: hamed_ubuntu در 27 دی 1393، 12:34 ب‌ظ
این خطای کنونی هست:
12:29:21 **** Incremental Build of configuration Debug for project AVR-LCD ****
make all
Invoking: Print Size
avr-size —format=avr —mcu=atmega8 AVRLCD.elf
AVR Memory Usage
----------------
Device: atmega8

Program: 462 bytes (5.6% Full)
(.text + .data + .bootloader)

Data: 12 bytes (1.2% Full)
(.data + .bss + .noinit)


Finished building: sizedummy
 
Invoking: AVRDude
/usr/bin/avrdude -pm8 -cusbasp -Uflash:w:AVRLCD.hex:a

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e931c
avrdude: Expected signature for ATmega8 is 1E 93 07
 Double check chip, or use -F to override this check.

avrdude done. Thank you.

make: *** [avrdudedummy] Error 1

12:29:21 Build Finished (took 209ms)
عنوان: پاسخ : مشکل در راه اندازی LCD کاراکتری
ارسال شده توسط: hamed_ubuntu در 27 دی 1393، 12:44 ب‌ظ
مدل نمایشگر:LCD 2*16 کاراکتری
نوع میکرو ATmega8
فرکانس کاریش هم ۸مگاهرتز
عنوان: پاسخ : مشکل در راه اندازی LCD کاراکتری
ارسال شده توسط: دانیال بهزادی در 27 دی 1393، 01:06 ب‌ظ
خطای make: *** [avrdudedummy] Error 1 معمولاً به این خاطره که اکلیپس نتونسته پروگرمر رو بشناسه. با برنامه‌های دیگه که از ال‌سی‌دی استفاده نمی‌کنن چنین مشکلی نداری؟
عنوان: پاسخ : مشکل در راه اندازی LCD کاراکتری
ارسال شده توسط: hamed_ubuntu در 27 دی 1393، 01:21 ب‌ظ
خودم هم همچین مشکلی رو در نظر دارم که احتمالا مشکل از چیپست باشه.
چون الان کلا میکرو از کار افتاد و دلیلش رو احتمال بد پروگرم شدن میدونم.
حالا با یه آی سی دیگه امتحان کنم ببینم چی میشه.
عنوان: پاسخ : مشکل در راه اندازی LCD کاراکتری
ارسال شده توسط: hamed_ubuntu در 27 دی 1393، 02:01 ب‌ظ
برنامه رو تونستم منتقل کنم تو آی سی.
الان مشکل اینه که نمایشگر LCD‌ واکنشی نشون نمیده.

پایه های LCD  به میکرو به این ترتیب وصل هستند.
RS=PB5
RW=PC5
E=PC4
D4=PC3
D5=PC2
D6=PC1
D7=PC0