原创 數字電路符號整理
0 常見的數字電路符號 1、D觸發器 這個就是D觸發器的示意圖。其中,clk爲時鐘,rst_n爲復位,d爲輸入,q爲輸出。這個功能非常簡單,復位有效的時候,這個q的值你可以認爲是0。如果復位無效的時候,那麼在時鐘上升沿的時候,就把
原创 深度詳解擴頻通信技術
有關擴頻通信技術的觀點是在1941年由好萊塢女演員Hedy Lamarr和鋼琴家George Antheil提出的。基於對魚雷控制的安全無線通信的思路他們申請了美國專利。不幸的是當時該技術並沒有引起美國軍方的重視,直到十九世紀八十年代才引
原创 clock domain crossing(CDC)
隨着技術的發展,數字電路的集成度越來越高,設計也越來越複雜。很少有系統會只工作在同一個時鐘頻率。一個系統中往往會存在多個時鐘,這些時鐘之間有可能是同步的,也有可能是異步的。如果一個系統中,異步時鐘之間存在信號通道,則就會存在CDC(c
原创 【劍指Offer】面試題03. 數組中重複的數字
題目 找出數組中重複的數字。 在一個長度爲 n 的數組 nums 裏的所有數字都在 0~n-1 的範圍內。數組中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出數組中任意一個重複的數字。 示例 1: 輸入:
原创 【劍指Offer】面試題04. 二維數組中的查找
題目 在一個 n * m 的二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 示例: 現有矩陣 matrix 如下: [
原创 【數據結構】二叉樹遍歷
二叉樹的定義 以遞歸形式給出的:一棵二叉樹是結點的一個有限集合,該集合或者爲空,或者是由一個根結點加上兩棵分別稱爲左子樹和右子樹的、互不相交的二叉樹組成。二又樹的特點是每個結點最多有兩個子女,分別稱爲該結點的左子女和右子女。在二又
原创 【C++】swap
C++中的swap(交換函數) 交換兩個變量的值很簡單。 比如 int a = 1; b = 2; 交換a b的值 這個很簡單 很容易想到的是找個中間變量比如 int temp = a; a = b; b = temp; 不需要中間變
原创 μC/OS的任務調度實現方法及其在PowerPC上的優化
y = OSUnMapTbl[OSRdyGrp]; SPrioHighRdy = (INT8U)((y << 3) + OSUnMapTbl[OSRdyTbl[y]]); μC/OS的任務調度算法採用了以空間換時間的策略,將特定字
原创 【劍指Offer】面試題09. 用兩個棧實現隊列
題目 用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 ) 示例 1
原创 【劍指Offer】面試題06.從尾到頭打印鏈表
題目 輸入一個鏈表的頭節點,從尾到頭反過來返回每個節點的值(用數組返回)。 示例 1: 輸入:head = [1,3,2] 輸出:[2,3,1] 限制:0 <= 鏈表長度 <= 10000 思路一:反轉數組 代碼 時間複雜度:O(n)
原创 【C++】引用作爲函數參數
C++中,引用作爲函數參數 引用作爲函數參數 C++之所以增加引用類型, 主要是把它作爲函數參數,以擴充函數傳遞數據的功能。 ———————————————————— c++,函數傳參: (1)將變量名作爲實參和形參。這時傳給形參的是變量
原创 【劍指Offer】面試題07. 重建二叉樹
題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。 例如,給出 前序遍歷 preorder = [3,9,20,15,7] 中序遍歷 inorder = [9,3
原创 【劍指Offer】面試題15. 二進制中1的個數
題目 請實現一個函數,輸入一個整數,輸出該數二進制表示中 1 的個數。例如,把 9 表示成二進制是 1001,有 2 位是 1。因此,如果輸入 9,則該函數輸出 2。 示例 1: 輸入:0000000000000000000000000
原创 uart接口的時序分析
數據傳送速率用波特率來表示, 指單位時間內載波參數變化的次數, 或每秒鐘傳送的二進制位數 如每秒鐘傳送240個字符, 而每個字符包含10位(1個起始位, 1個停止位, 8個數據位), 這時的波特率爲2400Bd 傳輸時序如下圖
原创 【劍指Offer】面試題17. 打印從1到最大的n位數
題目 輸入數字 n,按順序打印出從 1 到最大的 n 位十進制數。比如輸入 3,則打印出 1、2、3 一直到最大的 3 位數 999。 示例 1: 輸入: n = 1 輸出: [1,2,3,4,5,6,7,8,9] 說明: 用返回一個