Sonsuz döngüye girmesinin nedeni "i" değişkeninden kaynaklanıyor "i" değişkeni unsigned int olunca 0 dan düşünce 255 değerini aldığından döngü sonsuza gider.
Çözüm "i" değişkeni signed int olarak tanımlamalısın ya da aşağıdaki gibi yazmalısın.
while(input(pin_a4)){
for(i=0;i<=7;i++){
set_adc_channel(i);
delay_us(20);
bilgi=read_adc();
}