HT-IDE3000下HT46F49E芯片外部中断编程指南

版权申诉
0 下载量 125 浏览量 更新于2024-10-19 收藏 6KB RAR 举报
资源摘要信息:"本文档是一个以HT46F49E单片机为硬件平台,使用HT-IDE3000编译器编写的外部中断程序。HT46F49E是盛群半导体公司(Holtek Semiconductor Inc.)推出的一款8位微控制器,它具备多种硬件特性,广泛应用于多种嵌入式系统设计中。HT-IDE3000是盛群公司为其微控制器系列提供的集成开发环境(IDE),它支持从代码编写、编译、调试到烧录的整个开发流程。本文档所涉及的外部中断程序,则是针对HT46F49E微控制器的中断系统进行编程,以实现特定功能。" 知识点详细说明: 1. HT46F49E单片机概述: HT46F49E是盛群公司生产的一款8位高性能CMOS微控制器,它集成了多种模拟和数字外设,提供多种封装形式以适应不同的应用需求。它通常用于控制小型家用电器、办公设备以及各种工业控制系统中。HT46F49E内建有高稳定性的振荡器、定时器/计数器、多个通道的PWM输出、串行通信接口、以及丰富的I/O端口等资源。 2. 外部中断系统: 外部中断是微控制器中一个非常重要的特性,它允许微控制器响应外部事件(例如按钮按压、传感器信号变化等)并立即执行中断服务程序(ISR)。在HT46F49E中,外部中断通常与特定的I/O端口相连,并通过编程设置中断触发条件(上升沿或下降沿触发),以及中断的使能和屏蔽。 3. HT-IDE3000集成开发环境: HT-IDE3000是盛群半导体公司推出的用于HT系列微控制器的集成开发环境,它提供了一个用户友好的界面,方便开发者完成代码编写、编译、调试以及最终烧录到目标微控制器中的整个开发过程。HT-IDE3000还支持模拟器和真实硬件的调试,能够显示程序运行时的寄存器、变量、堆栈等信息,极大地方便了程序的开发和调试工作。 4. 编程外部中断: 在编写外部中断程序时,开发者需要考虑以下几个方面: - 中断向量配置:为外部中断分配正确的中断向量地址。 - 中断触发方式:选择是上升沿触发还是下降沿触发。 - 中断优先级:设置中断的优先级,以处理可能同时发生的多个中断。 - 中断使能与屏蔽:在程序中设置何时允许中断发生,以及在何时屏蔽中断。 - 中断服务程序(ISR):编写处理中断的代码,确保中断能够被正确响应和处理。 5. 编译与调试: 使用HT-IDE3000编译器可以对HT46F49E的源代码进行编译,将C语言或其他支持的编程语言转换成微控制器可以理解的机器码。编译过程中,开发者需要关注编译器提供的错误和警告信息,并对源代码进行相应的调整。调试阶段,则需要在HT-IDE3000环境下检查程序的运行状态,确保程序的逻辑正确性和稳定性。 6. 烧录与部署: 编译和调试完成后,程序会被烧录到HT46F49E微控制器中。这个过程需要使用HT-IDE3000提供的工具,通过适当的烧录器和接口将编译好的程序写入微控制器的非易失性存储器中。烧录成功后,微控制器就可以在实际应用中运行该程序,执行预定的任务。 本文档是开发者在设计基于HT46F49E微控制器的应用时,针对外部中断编程的参考资源。通过理解上述知识点,开发者能够更有效地利用HT-IDE3000编译器编写外部中断相关的程序,并将其部署到实际的嵌入式系统中。

super(Ui_MainWindow, self).__init__(parent) parser_car_det = argparse.ArgumentParser() # parser.add_argument('--weights', type=str, default='weights-s/best1.pt', help='model.pt path') parser_car_det.add_argument('--weights', type=str, default='weights-s/best1.pt', help='model.pt path') parser_car_det.add_argument('--source', type=str, default='input/3.mp4', help='source') # file/folder, 0 for webcam # parser.add_argument('--source', type=str, default='rtsp://admin:hik12345@192.168.1.64:554//Streaming/Channels/101', help='source') # file/folder, 0 for webcam parser_car_det.add_argument('--output', type=str, default='inference/output', help='output folder') # output folder parser_car_det.add_argument('--img-size', type=int, default=640, help='inference size (pixels)') parser_car_det.add_argument('--conf-thres', type=float, default=0.4, help='object confidence threshold') parser_car_det.add_argument('--iou-thres', type=float, default=0.5, help='IOU threshold for NMS') parser_car_det.add_argument('--fourcc', type=str, default='mp4v', help='output video codec (verify ffmpeg support)') parser_car_det.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu') parser_car_det.add_argument('--view-img', action='store_true', help='display results') parser_car_det.add_argument('--save-txt', action='store_true', help='save results to *.txt') parser_car_det.add_argument('--classes', nargs='+', type=int, help='filter by class') parser_car_det.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS') parser_car_det.add_argument('--augment', action='store_true', help='augmented inference') parser_car_det.add_argument('--idx', default='2', help='idx') self.opt_car_det = parser_car_det.parse_args() self.opt_car_det.img_size = check_img_size(self.opt_car_det.img_size) half = 0 source_car_det, weights_car_det, view_img_car_det, save_txt_car_det, imgsz_car_det = self.opt_car_det.source, self.opt_car_det.weights, self.opt_car_det.view_img, self.opt_car_det.save_txt, self.opt_car_det.img_size self.device_car_det = torch_utils.select_device(self.opt_car_det.device) self.half_car_det = 0 # half precision only supported on CUDA cudnn.benchmark = True

222 浏览量