上一篇我們分享了Grbl的系統命令部分,在上位機發(fā)來的數據流,除了系統命令($開頭),其余的就是G代碼了,在protocol.c中調用gc_execute_line()這個函...
上一篇我們分享了Grbl的系統命令部分,在上位機發(fā)來的數據流,除了系統命令($開頭),其余的就是G代碼了,在protocol.c中調用gc_execute_line()這個函...
上一篇我們分析了system.c,它除了執(zhí)行系統命令外,還處理了其他功能例如:安全門,重置,暫停,恢復等功能,這就涉及到對IO引腳的操作了,Grbl中直接使用寄存器操作IO引...
上一篇我們分享了Grbl主循環(huán)把串口發(fā)來的數據解析,分發(fā)到不同的執(zhí)行機構,其中最重要的兩個使system_execute_line()和gc_execute_line();我...
主循環(huán)這塊算是Grbl中最復雜的內容了,里面摻雜了很多模塊調用,我們抽絲剝繭,順著脈絡一點點進行。先主要分析main.c和protocol.c 首先在主入口中我們了解過,Ar...
上篇我們分享了Grbl通過串口中斷的方式處理收發(fā)數據的例子,并使用一個簡單的結構儲存數據。這篇我們分享Grbl中一個重要的數據結構:環(huán)形隊列。通過環(huán)形隊列做緩沖,協調單片機和...
上篇我們分享了通過串口寄存器實現單片機與電腦的通信,這篇繼續(xù)通過中斷的方式實現,這樣能使主循環(huán)和串口互不干擾的獨立運行。 首先我們開啟在UCSR0B中的RXCIE0開關,它的...
上一篇我們分享了Grbl串口的serial.c源碼,接下來我們將通過動手編寫幾個例子來深入了解Arduino底層關于串口寄存器的用法。 開始之前介紹一下與串口相關的寄存器: ...
串口通過UART接口通過USB與上位機通信,配置成中斷接收和中斷發(fā)送模式,并創(chuàng)建了串口接收環(huán)形隊列和串口發(fā)送環(huán)形隊列,中斷接收的數據存放在串口接收環(huán)形隊列里,串口需要發(fā)送的數...
注釋詳盡,設計嚴謹,有專業(yè)、優(yōu)雅、神作之稱。模塊交互,相得益彰。其中串口通信、中斷定時,如外星之技。廢寢忘食,仍怡然自樂。 前面我們分享了Grbl的真正入口和Grbl為什么沒...
自云先世受內存限,只2KB如此絕境,入不敷出焉,遂與閉門造車。 上回我們說到,Grbl并沒有使用Arduino框架,這是為什么呢? 原來Grbl并沒有使用Arduino框架,...
編譯上傳,便遇大山。初探入口,仿佛若有戲。便舍身,從口入,精讀數十行,豁然開朗。 初讀Grbl,你可能也被它的簡潔嚇到了,它沒用setup,也沒用loop,甚至連ma...
共和年間,河北人碼字為生。搞嵌入,忘編程之深淺。偶遇Grbl,左右數千行,中無雜碎,注釋完善,性能極致,碼農甚異之。遂前往,一探究竟…… Grbl是一款開源高性能,此成本的,...