如何以及何时可以在AVR微控制器中使用中断?

什么时候使用中断? 答: 以一个示例为例,假设围绕微控制器构建的应用程序具有以下结构: 它从键盘,ADC等设备获取输入; 处理输入并生成输出,该输出可以使用七段式LCD等设备显示,也可以用于操作其他设备(如电机等)。 在这种设计中,控制器与计时器等内置设备以及传感器,串行端口等其他接口外围设备进行交互。程序员需要定期监视其状态,例如传感器是否正在提供输出,是否已接收或发送信号,是否计时器已经完成计数,或者接口的设备是否需要控制器的服务,等等。 这种连续监视的状态称为轮询。 在轮询过程中,微控制器会继续检查其他设备的状态。 这样做时,它不会执行其他任何操作,并且会花费所有处理时间进行监视。 此问题可以通过使用中断来解决。 在中断方法中,控制器仅在发生中断时才响应。 因此,在中断方法中,不需要控制器定期监视接口设备和内置设备的状态(标志,信号等)。 为了更好地理解差异,请考虑以下因素: 轮询方法与业务员非常相似。 推销员挨家挨户要求购买其产品或服务。 像控制器一样,它会持续监视所有设备的标志或信号,并迎合任何需要其服务的情况。 另一方面,中断与店主非常相似。 任何需要服务或产品的人都会去找他,并告知他/她的需求。…

嵌入式处理器如何在轮询和管理数据的同时管理各种接口(例如ZigBee,RF,串行和USB以及WLAN)?

嵌入式处理器通常在其上运行某些操作系统(有时为RTOS)。 操作系统提供了更好的事物抽象。 我们将考虑在高科技汽车中使用嵌入式处理器,其中包含无线通信(Zigbee和WLAN),串行通信USB等。 在许多嵌入式处理器中,将运行Linux之类的OS。 操作系统将创建不同的进程,线程以成功处理,管理数据。 Zigbee,WLAN将通过特定于每种硬件的设备驱动程序进行通信(例如:xbee版本2具有其Linux驱动程序,并且应在操作系统中运行)操作系统本身中存在的通用联网软件堆栈。 如果要通过zigbee硬件将歌曲发送到另一个zigbee,则两者都应首先建立通信。 然后,通过在两个嵌入式处理器中运行的ftp或tftp协议,可以发送文件。 接口将由操作系统中运行的io进程管理。 在主机处理器上运行的操作系统将通过USB,SPI或PCIe等串行通信总线与您的无线电硬件– Zigbee,WLAB进行通信。 无线电硬件缺乏智能。 它只能执行主机处理器指示的任务。 因此,将由zigbee或wlan发送的数据包将在OS级别进行准备,直到第3层(此处将添加IP标头)并提供给每个硬件特定的驱动程序。 cfgdot11驱动程序将添加802.11标头,并将此数据包提供给高通或Broadcom或Marvell提供的wlan芯片组中运行的固件。 相反的情况是接收分组。 套接字编程是处理不同应用程序所必需的! 说通过tftp服务器发送音乐文件将被发送到目标套接字号,我想是69。…