Видях че има подобна тема,но тъй като почти нищо не разбрах (а от малкото което разбрах ми се струва че не ми върши работа) реших да пусна нова тема.
Искам да направя FIFO буфер за команди за PIC16 на asm, тъй като със C не съм се занимавал и нещо не ми се отдава (а и стаалата част от проекта е на asm и не ми се пренаписва).
Идеята е следната - процесора си изпълнява команди последователно от буфер, а по UART, SPI или IIC се предават нови, работа се прекъсва и новите команди се тъпчат в края на буфер-а. Приемането, както и разпознаването на командите и аргументите не ми е проблем.
Дотук добре ама реализацията на тоя буфер ми се губи.
Единственото което ми хрумва е действие с груба сила - при извличане на първата стойност от буфер-а останалите да се преместват една клетка напред и още една клетка в която да се пази адреса на послендата заета клетка от буфер-а(или броя на командите, което е същото). Обаче тук проблема е, че при n команди в буфер-а, при всяко извличане ще трябва да се преместват n-1 клетки, което отнема доста време.
Предполагам че има някакъв по интелегентен начин на решение на проблема.
Моля помогнете
