在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何對螺旋槳微控制器進行編程

454398 ? 來源:wv ? 2019-10-11 10:10 ? 次閱讀

步驟1:您需要的條件

硬件

螺旋槳。您可以了解更多信息,并在Parallax網站上查看示例電路

編程棒。 USB到串行轉換器,Prop Plug或從具有內置USB

計算機的Parallax中獲取Protoboard。 PC,Mac或Linux(對不起,Amiga!)

用于示例程序的面包板,電阻器LED,以及電源(可以使用2倍AA)。我使用了3mm綠色LED和270歐姆電阻

軟件/下載

螺旋槳工具(PC,MAC,Linux)

Propeller手冊(pdf)

可以使用多種語言(C,Spin,PropBasic,Assembly等)對Propeller進行編程。我認為大多數人都使用Spin,這是我最喜歡的語言,所以本教程將介紹該語言。

步驟2:硬件設置

在開始編程之前,讓我們看一下將要使用的測試電路;

原理圖

(完整大小)

我正在使用3mm綠色LED和270歐姆電阻。

面包板

(原尺寸)

第3步:旋轉基礎

《” div》

“想象一下,如果BASIC和PASCAL在酒吧時間掛了,而9個月后出現了一種新語言-那么這就是您的SPIN。” - Ben Heck

Spin是Prop最常用的高級語言,可能是因為它很容易(1)和(2)存在旋轉

YOURFIRSTPROGRAM

為您的第一個程序準備好了嗎?我想說一下Spin,因為它是我最了解的語言。在這里是:

將上面的程序放入Propeller工具中,然后按F10。它將快速編譯并加載到螺旋槳中。代碼將每隔一秒鐘(1/2赫茲)使連接到P0的LED永遠閃爍一次。讓我們分解每一行以了解它的作用;

PUB主功能

旋轉被分為多個塊;

PUB和PRI

這2個塊包含實際代碼。如果您熟悉php或BASIC或C,則它們的功能很像函數。它們具有名稱(此塊的名稱為“ main”),您可以向其傳遞值(函數(passedval))。

對于有效程序,其余塊不是必需的;

CON

CON保存程序常數。如果您在整個程序中使用了一個常量,則CON塊允許您更改一次,并且每次使用時都會反映出來。這是使用CON塊的閃爍程序的示例;

VAR

VAR塊保存程序變量。在閃爍燈程序中,我沒有使用任何系統變量,但這是使用變量的閃爍燈的版本。

還有2個塊,即DAT和OBJ,但我們將暫時跳過這些內容-OBJ在合并其他人的代碼時很有用,而DAT是另一個保存變量的地方,它也是您放置匯編代碼的地方(如果要使用它)。

無論如何-回到我們的原始程序。下一行是:

dira [0]:= 1

螺旋槳上的每個引腳都可以設置為輸入或輸出。道具啟動時,每個引腳都被設置為輸入,因此我們需要將P0設置為輸出。

要將P0設置為輸出,我們將dira [0]的值更改為1。:=是spin中的賦值運算符。您能猜出如何將P10設置為輸出嗎? dira [10]:= 1.您還可以通過一個命令更改引腳范圍。要更改P0,P1,P2和P3,只需使用dira [0..3]:=1。

repeat

repeat告訴Propeller多次運行一個代碼塊。您可以指定重復條件(將i從1重復到100),也可以通過不指定其他任何內容來永久重復。此重復塊將永遠重復。

要重復的代碼由標簽界定。注意重復塊下面的淺灰色線條嗎?螺旋槳工具在此處放了灰線,以顯示重復循環中的代碼。

outa [0]:= 1

outa告訴螺旋槳將引腳接地或連接到V +。 outa的工作方式與dira一樣,您可以設置單個引腳(outa [10]:= 1)或一組引腳(outa [0..3]:= 1)的輸出。請注意,僅當將引腳切換到具有dira的輸出時,outa才有意義。

此外,螺旋槳使用三態邏輯。每個引腳可以接地,V +或設置為高阻抗狀態。

高阻抗狀態使該引腳可以感測到它是接地還是V +,而無需改變信號。它使多個引腳共享同一數據通道,并執行諸如charlieplexing之類的操作。

使用以下方法將引腳接地:

dira [pin]:= 1

outa [pin]:= 0

引腳連接到V +,其中:

dira [pin]:= 1 outa [pin]:= 1

如果該引腳連接到低或高信號(高阻抗狀態),則表示:

dira [pin]:= 0(默認為啟動狀態)

pinstatus:= ina [pin] ina的工作方式與outa和dira相同,只是它是只讀的。如果將引腳設置為輸入,ina將保留當前輸入值。

步驟4:旋轉基礎,續

讓我們繼續執行閃爍燈程序。下一行是:

waitcnt(clkfreq + cnt)

在分解此指令之前,讓我先解釋一下clkfreq和cnt;

clkfreq

Prop可以在多個時鐘頻率下運行,從20kHz一直到80MHz。 clkfreq是一個系統變量,等于1秒內有多少個時鐘周期(滴答聲)。如果Prop以80MHz運行,則clkfreq = 80,000,000。如果Prop以20kHz運行,則它將等于20,000。

cnt

cnt是系統時鐘。在啟動時,cnt = 0,并且在每個刻度上一直遞增至232,然后再滾動到0。cnt是只讀值,您不能更改系統時鐘,只需讀取它的值即可。

現在,waitcnt:它將暫停程序執行,直到系統時鐘達到括號中的值為止。括號中的值是什么?當前系統時鐘(cnt)加上一秒內的滴答數。 waitcnt(clkfreq + cnt)告訴道具在進行下一條指令之前要保持1秒鐘。

如果我們要等待半秒鐘怎么辦? waitcnt(clkfreq/2 + cnt)。 5秒左右如何? waitcnt(clkfreq * 5 + cnt)

因此,在我們的程序中,我們將引腳0翻轉到輸出,將其連接到V +(將其驅動為高電平)以打開LED,并等待一秒鐘。這是下一條指令;

outa [0]:= 0

該指令將引腳0從連接到V +變為接地。它關閉LED。請注意,引腳0仍是輸出,但已接地。

waitcnt(clkfreq + cnt)

就像上次一樣,它暫停程序執行,直到系統時鐘等于括號中的值。在這種情況下,它將暫停執行一秒鐘。

將其打包

我們的重復循環中的最后一條指令已完成。因為我們的重復循環沒有結束條件,所以它將在第一行再次開始(outa [0]:= 1),并無限期地運行。

步驟5:清理代碼

讓我們用幾個運算符清理代碼。請注意,這些運算符將不會更改您的代碼,它們只是使您更易于閱讀的快捷方式。

這里是代碼的清理版本

在許多語言中,您可以使用“ ++”來增加變量(i ++會增加變量i)。還有更多運算符供您使用,以下是我在清理代碼中使用過的一些運算符;

~~(雙波浪號)

雙波浪號將設置前面的變量為TRUE。因此,代替dira [0]:= 1,我們可以使用dira [0] ~~

?(單波浪號)將前面的變量設置為FALSE。

! (感嘆號)

感嘆號翻轉后繼變量的值。如果將其設置為TRUE,它將被翻轉為FALSE。通常,它被稱為“切換”,因為它就是這樣做的。

在Spin,++,-,比較,最大和最小值等中可以使用很多運算符-請查看《螺旋槳手冊》從第42頁開始查看所有內容。

第6步:基本視頻

螺旋槳具有在視頻硬件中,制作視頻非常簡單:

首先,我們需要稍微改變一下電路;

(原尺寸)

我們添加了2件事;在引腳30和31上有一個5MHz的晶體。推進器需要一定的速度和精度才能生成視頻數據,Prop會采用該5MHz的輸入晶體并將其乘以16,以達到80MHz的時鐘速度。

A RCA(復合)視頻插孔

您將連接3個引腳以生成視頻,

P12通過270歐姆電阻連接到插孔

P13通過560歐姆電阻連接到插孔

P14通過一個1.1k歐姆的電阻器到插孔

現在已經設置了視頻插孔和晶體,這是程序;

Runni ng該程序將使該圖像顯示在電視上:

我將簡要介紹該程序,以使您了解正在發生的事情,但我將保存詳細的分析為了將來的指導。讓我們從CON塊開始;

CON

CON保持程序常量。這里有2個特殊常量;

_clkmode

該常量告訴Propeller應該以什么時鐘速度運行。如果您未指定任何內容,則道具將使用內部振蕩器在20MHz附近運行。此設置(xtal1 + pll16x)告訴Prop獲取晶體頻率并將其乘以16。請查看《 Propeller手冊》以了解其他有效的時鐘設置。

_xinfreq

如果您使用的時鐘速度為使用水晶時,您需要告訴Prop水晶有多快!將_xinfreq設置為5_000_000可以告訴道具,晶體頻率為5MHz。注意:在Spin中,下劃線(_)被忽略,因此人們經常使用它們來簡化大數字的讀取。

OBJ

obj塊告訴編譯器:“如果我在另一個文件中引用方法(PUB或PRI),則應在此處進行”。我將完整討論如何將Objects用于另一個可指導的對象,但是現在,僅將Objects視為包含其他代碼的一種方式即可。

我們此處使用的代碼是Propeller工具隨附的。 tv_text是啟動電視并在其上顯示簡單文本信息的代碼。 Parallax的對象交換中也有大量其他對象。

PUB main

這是主要的代碼塊。 text.start指文本對象中的PUB啟動方法。它啟動電視并為屏幕保留內存。

text.str指文本對象中的str方法,它使用Propellers內置字體顯示文本字符串。我們使用spin的string()函數聲明要顯示的文本字符串。

就是這樣!還有其他電視顯示對象。圖形演示(下載Propeller工具時隨附)包括顯示文本,顏色和圖形的方法,下面是屏幕截圖。您還可以在Object Exchange上下載圖形演示。

步驟7:后續步驟

我們在Spin中瀏覽了一個閃爍的燈光程序,我為您提供了生成視頻的快速概述,但Propeller可以做的還很多!

多任務處理-我們的閃爍燈程序僅使用了1個核心,但您還擁有其他7個核心

面向對象編程-Spin是一種“ OOP精簡”語言,并且代碼重用非常簡單。已經建立了對象來控制和讀取傳感器,伺服器,電動機和許多其他設備。

高級圖形和音頻-MIDI和wav文件播放,圖形和游戲。

后續步驟

還有一些其他資源可幫助您入門:

螺旋槳手冊,教學工具包,數據表和應用筆記(此處)

螺旋槳論壇

Nuts and Volts雜志上喬恩·威廉姆斯的旋轉區專欄

道具的替代編程語言:

12個模塊

PropBasic

Imagecraft C

螺旋槳對象交換

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7680

    瀏覽量

    152335
  • 編程
    +關注

    關注

    88

    文章

    3645

    瀏覽量

    94186
收藏 人收藏

    評論

    相關推薦

    CASAIM助力ABB完成螺旋槳推進三維掃描及檢測

    近日,中科廣電CASAIM成功為ABB的螺旋槳推進提供了高精度的三維掃描及檢測服務,為其產品質量控制和性能優化提供有力保障。
    的頭像 發表于 02-21 09:52 ?113次閱讀

    dsPIC33EP32MC204無人機螺旋槳參考設計用戶指南

    電子發燒友網站提供《dsPIC33EP32MC204無人機螺旋槳參考設計用戶指南.pdf》資料免費下載
    發表于 01-22 15:48 ?6次下載
    dsPIC33EP32MC204無人機<b class='flag-5'>螺旋槳</b>參考設計用戶指南

    MSP430微控制器串行編程適配器用戶指南

    電子發燒友網站提供《MSP430微控制器串行編程適配器用戶指南.pdf》資料免費下載
    發表于 12-05 14:28 ?0次下載
    MSP430<b class='flag-5'>微控制器</b>串行<b class='flag-5'>編程</b>適配器用戶指南

    FPGA 與微控制器優缺點比較

    在現代電子設計領域,FPGA和微控制器(MCU)是兩種常用的計算平臺。它們各自具有獨特的優勢和局限性,適用于不同的應用場景。 性能 FPGA FPGA是一種可編程的硬件,由大量的邏輯單元、觸發
    的頭像 發表于 12-02 09:58 ?679次閱讀

    C2000?微控制器的USB閃存編程

    電子發燒友網站提供《C2000?微控制器的USB閃存編程.pdf》資料免費下載
    發表于 09-26 11:30 ?0次下載
    C2000?<b class='flag-5'>微控制器</b>的USB閃存<b class='flag-5'>編程</b>

    什么是微控制器/它的關鍵組成部分有哪些?

    微控制器
    芯廣場
    發布于 :2024年09月18日 15:02:33

    C2000?微控制器的串行閃存編程

    電子發燒友網站提供《C2000?微控制器的串行閃存編程.pdf》資料免費下載
    發表于 09-03 10:15 ?0次下載
    C2000?<b class='flag-5'>微控制器</b>的串行閃存<b class='flag-5'>編程</b>

    微控制器內部的存儲有哪些

    微控制器(MCU)內部的存儲微控制器系統的重要組成部分,它負責存儲程序代碼、數據以及控制邏輯等信息。這些存儲類型多樣,各具特點,共同支
    的頭像 發表于 08-22 10:41 ?942次閱讀

    微控制器的結構和應用

    微控制器(Microcontroller Unit,簡稱MCU)作為嵌入式系統的核心部件,其原理和應用在現代科技發展中占據了舉足輕重的地位。本文將從微控制器的原理、基本結構、工作原理、性能特點以及廣泛的應用領域等方面進行詳細闡述
    的頭像 發表于 08-22 10:40 ?1522次閱讀

    如何在RL78微控制器上使用EZ-CUBE3

    本章描述了如何使用EZ-CUBE3在RL78微控制器進行片上調試和Flash編程
    的頭像 發表于 08-01 16:01 ?1010次閱讀
    如何在RL78<b class='flag-5'>微控制器</b>上使用EZ-CUBE3

    開源項目!用ESP8266 DIY會爬墻的無人機

    電烙鐵 一架無人機需要有機架、電機、螺旋槳、電動馬達、飛行控制器、電池組成。 飛行控制器 飛行控制器(又稱FC)是飛機的大腦。它是一塊電路板,上面有一系列的傳感
    發表于 07-04 09:22

    微控制器與運動控制器的區別

    隨著現代工業技術的快速發展,控制技術在各種機械設備中扮演著越來越重要的角色。微控制器和運動控制器作為兩種常見的控制設備,在各自的領域發揮著重要作用。然而,兩者在功能、應用、特點等方面存
    的頭像 發表于 06-13 14:52 ?768次閱讀

    編程邏輯控制器微控制器的區別

    在電子技術和工業自動化領域中,可編程邏輯控制器(PLC)和微控制器(MCU)是兩種常用的控制設備。盡管它們都扮演著在系統中接收指令并控制其他
    的頭像 發表于 06-03 14:52 ?1133次閱讀

    微控制器的定義和工作原理

    、消費類電子、游戲設備、電話、HVAC、樓宇安全與門禁控制、工業控制與自動化和白色家電等眾多領域。本文將對微控制器的定義、工作原理及工作條件進行詳細介紹。
    的頭像 發表于 05-24 17:17 ?2027次閱讀

    嵌入式微控制器的自動代碼生成

    然而,在工作中,電氣工程師經常被分配對嵌入式微控制器進行編程的任務,這是有充分理由的:他們在如何控制電力電子電路方面擁有經驗,并且了解整個系統的要求。此外,他們對
    發表于 05-03 17:33 ?525次閱讀
    嵌入式<b class='flag-5'>微控制器</b>的自動代碼生成
    主站蜘蛛池模板: 黄色生活毛片 | 男人天堂伊人网 | 老司机亚洲精品影院在线 | 日本不卡视频在线视频观看 | 特级一级毛片 | 免费看欧美理论片在线 | 欧美日韩一卡2卡三卡4卡新区 | 好爽好深太大了再快一点 | 尤物啪啪 | 大片毛片女女女女女女女 | 国产资源免费观看 | 国产午夜三区视频在线 | 国产精品三级在线观看 | 免费在线观看的视频 | 在线看片成人免费视频 | 五月天激情在线 | a级午夜毛片免费一区二区 a看片 | 1024手机在线看 | 99久久99久久精品免费看子伦 | 色爱区综合 | 天天影视欧美综合在线观看 | 淫香色香 | 久久草在线免费 | 天天免费看片 | 性开放网站| 不良视频在线观看 | 97色涩 | 成人免费一区二区三区 | 二级黄色大片 | 乱小说录目伦200篇将曲勒 | 福利视频入口 | 午夜啪啪福利视频 | 日日噜噜噜夜夜爽爽狠狠 | 色多多www网站| 日韩一级片免费 | 久久青青成人亚洲精品 | 五月婷婷在线观看 | 91大神网址 | 很黄很污的视频网站 | 午夜精品久久久久蜜桃 | 免费抓胸吻胸激烈视频网站 |