سلام
بروبچه های اینکاره ممکنه یه نگاه به این برنامه بندازن؟ :redface:
این اولین برنامه ای هست که با codevision می نویسم! 2 تا error میده که سر در نمیارم چیه :sad: کار برنامه هم اینه که یک کارکتر رو از keypad می گیره و روی lcd نمایش میده ( یعنی احتمالا این کار رو می کنه! )
البته اینجا یه خورده اول و آخر برنامه به هم ریخته ( تو codevision درست نوشتم ) . error ها هم اینا هستن:
بروبچه های اینکاره ممکنه یه نگاه به این برنامه بندازن؟ :redface:
این اولین برنامه ای هست که با codevision می نویسم! 2 تا error میده که سر در نمیارم چیه :sad: کار برنامه هم اینه که یک کارکتر رو از keypad می گیره و روی lcd نمایش میده ( یعنی احتمالا این کار رو می کنه! )
#include <mega16.h>
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
#include <delay.h>
#include <sleep.h>
char key;
char keycode [4][4]={{'7','8','9',' ;/'},{'4','5','6' ,'*'},{'1','2',' ;3','-'},{'c','0','=' ,'+'}};
char findrow (char input)
{
switch (input)
{
case 0x0E: return 0;
break;
case 0x0D: return 1;
break;
case 0x0B: return 2;
break;
case 0x07: return 3;
break;
}
}
interrupt [EXT_INT0] void ext_int0_isr(void)
{
char row,cul;
row=findrow(PINC & 0x0F);
delay_ms(20);
PORTC=0xEF;
if((PINC & 0x0F)!=0x0F)
row=0;
else
{
PORTC=0x0D;
if((PINC & 0x0F)!=0x0F)
row=1;
else
{
PORTC=0x0B;
if((PINC & 0x0F)!=0x0F)
row=2;
else
{
PORTC=0x07;
if((PINC & 0x0F)!=0x0F)
row=3;
}
}
key=keycode[row][cul];
lcd_clear();
lcd_putchar (key);
}
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTC=0x0F;
DDRC=0xF0;
GICR|=0x40;
MCUCR=0x00;
MCUCSR=0x00;
GIFR=0x40;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
#asm("sei"
sleep_enable();
while (1)
{
powerdown();
}
}
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
#include <delay.h>
#include <sleep.h>
char key;
char keycode [4][4]={{'7','8','9',' ;/'},{'4','5','6' ,'*'},{'1','2',' ;3','-'},{'c','0','=' ,'+'}};
char findrow (char input)
{
switch (input)
{
case 0x0E: return 0;
break;
case 0x0D: return 1;
break;
case 0x0B: return 2;
break;
case 0x07: return 3;
break;
}
}
interrupt [EXT_INT0] void ext_int0_isr(void)
{
char row,cul;
row=findrow(PINC & 0x0F);
delay_ms(20);
PORTC=0xEF;
if((PINC & 0x0F)!=0x0F)
row=0;
else
{
PORTC=0x0D;
if((PINC & 0x0F)!=0x0F)
row=1;
else
{
PORTC=0x0B;
if((PINC & 0x0F)!=0x0F)
row=2;
else
{
PORTC=0x07;
if((PINC & 0x0F)!=0x0F)
row=3;
}
}
key=keycode[row][cul];
lcd_clear();
lcd_putchar (key);
}
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTC=0x0F;
DDRC=0xF0;
GICR|=0x40;
MCUCR=0x00;
MCUCSR=0x00;
GIFR=0x40;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
#asm("sei"

sleep_enable();
while (1)
{
powerdown();
}
}
البته اینجا یه خورده اول و آخر برنامه به هم ریخته ( تو codevision درست نوشتم ) . error ها هم اینا هستن:
(57):must declare first in block
(84):the program has no 'main' function
دیدگاه