Прошу, подскажите, в какую сторону копать. Пытался сделать эффект "циклического" сдвига изображения на ЖКИ (128х32, I2C). Сам ЖКИ считывать данные не позволяет. Поэтому определил массив char video_ram[512] - видеопамять. Сначала меняю содержимое video_ram, потом просто по I2C переписываю его в ОЗУ самого дисплея.
В функции для "циклического сдвига" есть такой фрагмент: int i,j; for(j=0;j<=3;j++){ // сдвиг for(i=1;i<=127;i++){ video_ram[128*j+i] = video_ram[128*j+i-1]; } }
Под отладкой увидел, что сделал не то совсем, поэтому этот фрагмент поменял:
int i,j; for(j=0;j<=3;j++){ // сдвиг for(i=127;i!=0;i--){ video_ram[128*j+i] = video_ram[128*j+i-1]; } }
Это было единственной изменение. При всех попытках запуска проги под отладчиком (в ОЗУ) было следующее: 1) Отладчик стал запускаться значительно дольше ( IAR повисает секунд на 10-15) 2) При пошаговой отладке переход на следующую команду тоже с тормозами приличными 3) При запуске программы (неважно, до точки останова или без них) проц повисает (на ЖКИ хоть какая-то хрень но выводиться должна, а этого нет), при попытке сделать halt IAR повисает навечно...
Может у кого-то что-то подобное уже было? Где причину искать?
|