امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
LCD
نویسنده پیام
vahid_ve_mybb1.2_import12823 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 95
موضوع‌ها: 37
تاریخ عضویت: شهریور ۱۳۸۵

تشکرها : 0
( 6 تشکر در 5 ارسال )
ارسال: #1
LCD
چجوری در CodeVisionAVR بر روی LCD کاراکتری از روی ROM چیز بنویسم؟

این درسته؟

کد:
char *str;

str="Hello";

lcd_puts(str);

من اینو امتحان کردم اما روی LCD یک سری علامت میاره!
لطفا راهنمایی کنید.

و در مورد اشاره گر ها نیز یک توضیح کلی بدید. :wink:

کد:
*str
&str

ممنون :wink:

<p><strong>Only AVR and C</strong></p>
<p><strong>GNU/LINUX</strong></p>
۰۸-بهمن-۱۳۸۵, ۰۸:۱۵:۵۸
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #2
 
راحت اینجوری بنویس
کد:
lcd_putsf("salam");

اونم که نوشتی نباید کار کنه خط دوم اومدی یه چیزی رو که مربوط به حافظه flash هست رو ریختی تو یه اشاره گر به حافظه ram
ببین اشاره گر ها یه سری متغیر هستند که آدرس یه جایی رو تو خودشون نگه می دارن مثلا ادرس یه متغیر که توی فضای ram تعریف شده رو می تونی با & بگیری بریزی توی یه اشاره گر حالا ما این جا دو جور خافظه داریم یکی ram یکی هم Flash که مثلا آدرس 0 هرکدومشون با هم فرق می کنه بنابراین نمی تونی یه آشاره گر که به ram اشاره می کنه رو با یه اشاره گر که به flash اشاره میکنه مقدار دهی کنی

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۰۸-بهمن-۱۳۸۵, ۱۰:۴۹:۱۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : 1نفر
vahid_ve_mybb1.2_import12823 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 95
موضوع‌ها: 37
تاریخ عضویت: شهریور ۱۳۸۵

تشکرها : 0
( 6 تشکر در 5 ارسال )
ارسال: #3
 
درسته، اما من میخام محتویات متغیری را که در rom قرار داره را روی LCD نمایش بدم. نه ثابت ها.

مثلا این کد بیسیک را شما به C ترجمه کنید:

کد:
Dim S as String*6
Dim I as Byte

S="Hello"

for i=0 to len(s)
lcd left(s,i)
waitms(500)
next i

خلاصه در C چجوری میشه با رشته ها کار کرد؟

اشاره گر ها چه کاربردی دارن؟ مثال بزنید.
:wink:

<p><strong>Only AVR and C</strong></p>
<p><strong>GNU/LINUX</strong></p>
۱۰-بهمن-۱۳۸۵, ۲۰:۰۵:۱۰
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #4
 
کد:
flash char *str = "Hello";
lcd_putsf(str);
اشره گر ها خیلی کار برد دارن یکیش توی همین استرینگ ها که داری می بینی یا آرایه ها بالا خره دونستنشون نیازه نمی تونی از زیرش در بری :wink:

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۲-بهمن-۱۳۸۵, ۱۰:۳۵:۰۷
وب سایت ارسال‌ها
پاسخ
vahid_ve_mybb1.2_import12823 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 95
موضوع‌ها: 37
تاریخ عضویت: شهریور ۱۳۸۵

تشکرها : 0
( 6 تشکر در 5 ارسال )
ارسال: #5
 
نمیشه اون برنامه ای که اون بالا نوشته بودم را کامل ترجمه کنید؟ :?

گفتم متغیر، نه ثابت! 8)

کد:
flash char *str

که ثابته! :!:

حالا اگه محتویات این متغیر اشاره گر قرار باشه در حین اجرای برنامه تغییر بکنه چی؟ وقتی تغییرش میدیم، دیگه نمی نویسه Hello! :wink:

<p><strong>Only AVR and C</strong></p>
<p><strong>GNU/LINUX</strong></p>
۱۳-بهمن-۱۳۸۵, ۰۶:۳۰:۵۱
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #6
 
کد:
#include <string.h>
#include <delay.h>

کد:
char S[6] = "Hello";
char I;
for(I=0; I<strlen(S) ;I++)
{
        lcd_putchar(S[I]);
        delay_ms(500);
}
اگه یه اشاره گر به یه متغیر ثابت رو به خوای محتوا شو تغییر بدی error می گیره :wink:

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۳-بهمن-۱۳۸۵, ۱۱:۰۵:۴۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : 1نفر
vahid_ve_mybb1.2_import12823 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 95
موضوع‌ها: 37
تاریخ عضویت: شهریور ۱۳۸۵

تشکرها : 0
( 6 تشکر در 5 ارسال )
ارسال: #7
 
شما فرض کنید ما میکروکنترولر را به درگاه سریال کامپیوتر متصل کردیم. حالا اگه دیتا از سوی کامپیوتر بیاد، میکروکنترولر باید این اطلاعات را بریزه داخل یک متغیر، سپس روی LCD به نمایش در بیاره. حالا اگه این اطلاعات متنی باشه، اولا چه متغیری نیازه؟
دوما چگونه این کار امکان پذیره؟

----------------------------------------------------

در WinAVR چگونه میشه دقیقا به مدت یک ثانیه در برنامه صبر کرد؟

توسط

کد:
_delay_ms()

عدد میدم تفاوتی نمیکنه!

و اینا چی؟

کد:
_delay_loop_1()
_delay_loop_2()

:wink:

<p><strong>Only AVR and C</strong></p>
<p><strong>GNU/LINUX</strong></p>
۱۴-بهمن-۱۳۸۵, ۰۶:۲۰:۳۴
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #8
 
باید ببینی طولش چه قدره می تونی ی آرایه از نوع char تعریف کنی با همون طولی که می خوای و با یه while می تونی همش رو بخونی البته یه پایان هم می خواد مثلا عدد 0 رو به عنوان پایان در نظر می گیری و توی while میگی تا زمانی که صفر نیست ادامه بده البته طول رو هم باید چک کنی بیشر نشه
و اما تاخیر که می بینی همینه اما محدودیت داره یعنی فکر کنم بیشتر از 200 و اینا نمی تونی بهش یدی مال همینه فرقی نمی کنه چند تاشو پشت سر هم کپی کن درست می شه

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۴-بهمن-۱۳۸۵, ۱۲:۵۰:۲۷
وب سایت ارسال‌ها
پاسخ
farzad-khan آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #9
 
با سلام

چرا از bascom استفاده نمیکنی !! واقعا قسمت lcd بسکام عالی هستش ؟؟ :wink:
۱۷-اسفند-۱۳۸۵, ۲۳:۳۶:۳۷
ارسال‌ها
پاسخ


پرش به انجمن:


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

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