PDA

View Full Version : مشکل عجیب و شاید خنده دار



M.KH-SH
سه شنبه 13 مهر 1400, 21:00 عصر
با سلام و احترام

بنده چندین سال سابقه برنامه نویسی با زبان C#‎‎‎‎‎‎ را دارم.

در حال حاضر برای طراحی و ساخت یک پروژه نیاز به میکرو دارم که شروع به ساخت دستگاه کنم.


حال مسئله اینجاست که هم کدویژن دارم و هم اتمل

کد کدویژن
/*
* x1.c
*
* Created: 05/10/2021 08:03:55 ب.ظ
* Author: COM_PC
*/
#define F_CPU 1000000UL
#include <io.h>
#include <delay.h>

#define BV(bit) (1<<(bit))
#define cbit(reg,bit) reg &= ~(BV(bit))
#define ibit(reg,bit) reg |=(BV(bit))




void main(void)
{
cbit(DDRB,0);

ibit(DDRB,1);
ibit(DDRB,3);

ibit(PORTB,0);

//_delay_ms(500);
while (1)
{
//_delay_ms(500);
ibit(PORTB,3);
delay_ms(50);
cbit(PORTB,3);
delay_ms(50);
if(PINB.0==0) ibit(PORTB,1);
if(PINB.0==1) cbit(PORTB,1);

}
}



/*
* FistTry.c
*
* Created: 12/07/1400 07:24:45 ب.ظ
* Author : COM_PC
*/
#define F_CPU 1000000UL


#define BV(bit) (1<<(bit))
#define cbit(reg,bit) reg &= ~(BV(bit))
#define ibit(reg,bit) reg |=(BV(bit))

#include <avr/io.h>
#include <util/delay.h>


int main(void)
{
cbit(DDRB,0);

ibit(DDRB,1);
ibit(DDRB,3);

ibit(PORTB,0);


while (1)
{
ibit(PORTB,3);
_delay_ms(500);
cbit(PORTB,3);
_delay_ms(500);

if(PINB0==0) ibit(PORTB,1);
if(PINB0==1) cbit(PORTB,1);


}
}




و کد اتمل



-
با شبیه سازی پروتئوس مدار این پروژه ساده و خنده دار را ساختم اما نتیجه خیلی جالب است با کد کدویژن درست اجرا میشود و با اتمل ناقص.




مدار با دو تا مگا8 هست که فقط با فشردن باتن باید ال ای دی 2 هم خاموش بشه و این با کد کدویژن انجام میشه و با اتمل انجام نمی شود.



امکانش هست راهنمایی کنید مشکل از منه یا از نحوه کامپایلر.

iiraniangamei
پنج شنبه 15 مهر 1400, 19:45 عصر
من یکبار شبیه به همین مشکل برام پیش اومده بود و فهمیدم یه کلمه رو پس و پیش نوشتم نوتریکا (http://notrikad.com)
چک کردید که مشکل نداشته باشه؟ ( چون بعضی مواقع باگ پیدا میکنه و مشکل رو نمایش نمیده)

M.KH-SH
جمعه 16 مهر 1400, 13:10 عصر
من یکبار شبیه به همین مشکل برام پیش اومده بود و فهمیدم یه کلمه رو پس و پیش نوشتم نوتریکا (http://notrikad.com)
چک کردید که مشکل نداشته باشه؟ ( چون بعضی مواقع باگ پیدا میکنه و مشکل رو نمایش نمیده)

تشکر از وقت شما
153521

شبیه ساز هم درسته اما کد هم بررسی کردم با توجه به اختلاف در برخی از سینتکس ها هردو یکسان می باشند.



ولی در کل فکر کنم از نظر کار کردن با کدویژن راحت تر هست تا اتمل هرچند که یک عمر با محیط vs کار کردم و احساس راحتی دارم با محیط اتمل.

M.KH-SH
جمعه 16 مهر 1400, 13:38 عصر
int readPin(int pin,int bit)
{
if (pin & BV(bit))
return 1;
if ((pin & BV(bit)) == 0 )
return 0;
}

تابع بالا نوشتم و مشکلم حل شد.