Спасибо, только я в асме полный ноль. Мне нужно асмовскую подпрограмму скрестить с Сишной, чтобы данные из сишного массива передавались в асм-подпрограмму.
Сейчас у меня программа выгляди так (const все-таки добавил, и количество элементов в нем не 8, а 16):
Код
#include <mega32.h>
#include <stdio.h>
#include <delay.h>
#define LEDS_PORT PORTA
#define LEDS_DDR DDRA
#define ALARM PORTA.0
#define CLK PORTA.1
#define EN PORTA.2
#define LAT PORTA.3
#define DAT1 PORTA.6
#define DAT2 PORTA.5
#define DAT3 PORTA.4
const unsigned char LINE[]={0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
,0x00};
void byte_out()
{
//хочу перевести а asm все что в этой подпрограмме.
char jj;
for(jj=0;jj<16;jj++)
{
CLK=0;
PORTA = (PORTA & 0xF) | (LINE[jj]<<4);
CLK=1;
}
CLK=0;
LAT=1;
LAT=0;
EN=0;
EN=1;
}
void main()
{
LEDS_DDR=0xFF;
LEDS_PORT=0x00;
EN=1;
LAT=0;
while (1==1) byte_out();
}
Как сделать, подскажите если не трудно.
Сообщение отредактировал zheka - Dec 11 2009, 14:42