Tja, leider geht's immer noch nicht, sieht jetzt folgendermaßen aus :
Code:
void initinterface(void)
{
DDRA=0;
DDRB |= 15;
PORTB |= (1<<WE);
PORTB |= (1<<RE);
PORTB &= ~(1<<LE_high);
PORTB &= ~(1<<LE_low);
}
void writemem(unsigned int addr, unsigned char value)
{
PORTB |= (1<<WE);
PORTB |= (1<<RE);
DDRA=0xff;
PORTA = (addr / 256);
PORTB |= (1<<LE_low);
_delay_ms(ws);
PORTB &= ~(1<<LE_low);
PORTA = (addr & 255);
PORTB |= (1<<LE_high);
_delay_ms(ws);
PORTB &= ~(1<<LE_high);
PORTA = value;
PORTB &= ~(1<<WE);
_delay_ms(ws);
PORTB |= (1<<WE);
DDRA=0;
}
unsigned char readmem(unsigned int addr)
{
unsigned int value;
PORTB |= (1<<WE);
PORTB |= (1<<RE);
DDRA=0xff;
PORTA = (addr / 256);
PORTB |= (1<<LE_low);
_delay_ms(ws);
PORTB &= ~(1<<LE_low);
PORTA = (addr & 255);
PORTB |= (1<<LE_high);
_delay_ms(ws);
PORTB &= ~(1<<LE_high);
DDRA=0;
PORTA=0;
PORTB &= ~(1<<RE);
_delay_ms(ws);
value = PORTA;
PORTB |= (1<<RE);
return value;
}
sowie
Code:
void memtest(void)
{
unsigned int addr;
unsigned char value;
initinterface();
for (addr=0;addr<32767;addr++)
{
writemem(addr,42);
value=readmem(addr);
uart_putc(value);
}
}
Irgendwie steh ich aufm Schlauch.....
Lesezeichen