Как уже отмечали другие, вам нужно поменять знак переменной приращения, а затем вам нужно использовать правильное условие для завершения l oop:
#include <stdio.h>
int main()
{
int i = 0, direction = 1;
int PORTD, array[8] = {10, 11, 12, 13, 14, 15, 16, 17};
for (i = 0 ; i >= 0 ; i += direction)
{
PORTD = array[i];
printf("i=%d array[%d]=%d\n", i, i, array[i]);
if(i == (sizeof(array)/sizeof(array[0]))-1 )
direction = -1;
}
}