All pastes #698499 Raw Edit

Array stack emulation test

public c v1 · immutable
#698499 ·published 2007-09-15 12:52 UTC
rendered paste body
#include <avr/io.h>#include <avr/interrupt.h>char sendbuff[9];char recvbuff[9];char status = 1;void pusharray ( char a[9], char val, int length)	{	for (int i = length; i >= 1; i--)		{		if (a[i] == 0 && a[i-1] != 0)			{			a[i] = val;			break;			}				}	}char poparray ( char a[9] , int length)	{	char retval;	for (int i = length; i >= 1; i--)		{		if (a[i] == 0 && a[i-1] != 0)			{			retval = a[i-1];			a[i-1] = 0;			return retval;			}		}		status = 0;		return 0;	}	/*ISR(SPI_STC_vect){	pusharray8( recvbuff, (char) SPDR); 	}*/int main (void){sendbuff[0] = 0x04;recvbuff[0] = 0x04;pusharray( sendbuff, 0xb7, 8);pusharray( sendbuff, 0xf0, 8);pusharray( sendbuff, 0xaa, 8);pusharray( sendbuff, 0xff, 8);DDRD = 0xff;PORTD = 0xff;DDRC = 0;PORTC = 0x0c;char val;mainloop:	if (bit_is_clear(PINC, 0x04))	{	val = poparray(sendbuff,8);	if (status)	{	PORTD = 0xff - val;	}	}	status = 1;goto mainloop;}