原创 數字電路符號整理

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] 說明: 用返回一個