月份加日期前面用on还是in_In、on、at总是分不清楚用法?教你如何使用这三个最简单的介词...

本文详细讲解了英语中In、On、At三个介词在时间表达上的具体用法,包括in用于世纪、年份、季节、月份、一段期间,on用于特定日期、日期、特定时间,at则用于某个时间点或短暂时段。同时,文中举例说明了在某人的生日等特殊场合的正确使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

In、on、at可以运用在时间及地点,用法相当多变,比如要讲在某人的生日,in/on/at someone’s birthday怎么感觉好像都对?In、on、at是我们从小时候就学会的介词,但这些看似简单的词,却是我们最容易搞混的。没关系,今天就针对时间方面的用法来为各位好好的分类它们!

818795310c2c72a76b3c4fe75cb26355.png

1. In的时间用法

in的时间用法主要可分为三种:

1.in + CYSM(Century/Year/Season/Month)世纪、年份、季节、月份

例子: in 21 century 在21世纪

in 2015 在2015

in winter 在冬天

in January 在1月

2.in + Part of the day,即一天中的某一段

例子: in the afternoon 在下午

3.in + Period,一「段」期间

例子: in the week 在一个礼拜内

2. On的时间用法

on + 特定日期、日期、特定时间 (Day or Date)

例子: on 19th 在19日

on 19th, January 在1月19日

on Monday 在星期一

on one’s wedding 在某人的婚礼

on the weekend 在周末

on Christmas Day 在圣诞节

这里需要注意的是,in the morning/at the night 的一般用法分别是 in/at,但如果要说某一天的早上或晚上,这时就属于特定时间的表示了,需使用 on,例如:on Friday morning/on Friday night。

另外来比较on跟at的季节用法,on 加特殊节日的话,后面通常会加上一个 Day,如:We have big meals on Christmas Day,这是比较一般性的用法,主要叙述圣诞节的风俗习惯,表示我们在圣诞节有吃大餐的习惯。而 at 的用法则代表节日的某一刻,如:We have a date at Christmas,这比较偏向叙述当天的活动内容,强调我们在圣诞节当下吃大餐的动作状态。

9ecf23929b431d71349ca1d59da7a1e1.png

3. At的时间用法

at + 某个时间点、短暂的时段

例子: at 9:30 在9:30

at midnight 在半夜

at lunch 在午餐

at one’s wedding 在某人的婚礼上

at Christmas 在圣诞节

,还有一点要说,at 强调一个「特定」的时间点,若把时间画成一条轴,那 at 就是指发生在线上某一个「时点」的事件;on 则用在特定的「日子」或「日期」;而 in 则有两个用法,一个指「相对长时间」的「其中」某一段时间,另一个则是指事件发生在「一段期间之内、之后」。

in time/on time/at time 的用法,也不少人容易搞错,in time 一般说叫做「即时」,on time 是「准时」,at time = at times,是「偶尔」的意思。另外也要注意 at time 跟 at a time 又是不同的意思喔!at a time = at one time = at once = at the same time = simultaneous,是“同时”的意思,千万不要搞混啦!

话说回来,「在某人的生日」,到底是用 in, on 还是 at one’s birthday 呢?

开头所提的疑问:到底是用 in, on 还是 at one’s birthday 呢?答案是 on, at 都可以用,但不能用in,原因刚也有提到,因为 in主要是指一段时间,某人的 birthday 是特定日期或是特定时间点,所以只能用 on 或 at 喔!

ba88cf091b6c6ab10d1797540085cf72.png

以上就是最基础的介词in、on、at的用法,看完本文大家是不是恍然大悟,发现介词其实很简单呢?希望大家能在看了我的文章后学习好英语,这就是我最高兴的事情啦,谢谢。

其实很多人学习英语过程中,都会遇到以上的这些情况,为了帮助更多人学好英语,我自己整理了一份英语相关的考试学习资料,适用于每个阶段,学习英语的朋友,希望可以帮到大家!

想要获得考试学习资料的朋友可以直接点击我的头像私信留言“英语学习资料”,即可!如果有其他英语学习方面不懂的问题也可以私信问我,我看到会在第一时间回复!也很开心能和你们讨论英语相关问题!

↓↓↓↓↓↓点击“了解更多”,还能立即免费体验,和外教老师一对一学习英语,教你如何在短时间内跟外国人正常沟通,发出纯正的英语口音,提高学习成绩!

6fb94f9f4d5ee412698da9ae07aaf2dc.gif
<think>好的,我现在需要回答用户关于AT9s_SwitchStateBoolAT9s_SwitchStateTri数据类型的定义及用法的问题。首先,我需要确认这两个数据类型的具体来源上下文。根据用户提供的引用[1],文中提到的是飞思卡尔芯片MC9S08SG16MC9S08SG08,所以可能这些数据类型是飞思卡尔或NXP(飞思卡尔后来被NXP收购)的MCU开发中使用的。 接下来,我需要查找是否有官方文档或相关资料提到这两个数据类型。由于用户提供的引用中没有直接说明,可能需要根据常见的命名习惯嵌入式系统中的开关状态处理来推断。通常,嵌入式系统中,布尔型开关可能表示两种状态(如开/关),而Tri可能指三态开关(如开/关/中间状态)。 然后,考虑编程中的定义。布尔类型可能使用枚举或简单的整数表示,例如: typedef enum { SWITCH_OFF, SWITCH_ON } AT9s_SwitchStateBool; 三态的可能定义: typedef enum { SWITCH_OFF, SWITCH_MID, SWITCH_ON } AT9s_SwitchStateTri; 在代码中使用时,可能用于读取GPIO状态或控制继电器等。例如,在引用[1]提到的双胞胎继电器设计电路中,可能需要这样的状态控制。 还需要注意可能的命名规范,例如前缀AT9s可能与具体的芯片型号或项目相关,但用户的问题中提到了AT9s,而引用中的芯片是MC9S08SGxx,可能存在拼写差异,需要确认是否为同一系列的不同命名方式,或者是否用户有拼写错误。 此外,检查是否有相关的库文件或头文件定义这些类型。例如,在飞思卡尔的SDK中可能会有类似的枚举定义用于开关状态处理。如果没有找到确切资料,可能需要建议用户查阅对应芯片的编程手册或SDK文档,或者提供示例代码说明常见用法。 最后,确保回答结构清晰,分点说明定义用法,并引用提供的参考资料,特别是引用[1]中的控制系统设计,可能涉及这些数据类型的应用场景。</think>关于AT9s_SwitchStateBoolAT9s_SwitchStateTri数据类型的定义及用法,结合飞思卡尔芯片(MC9S08SG16/MC9S08SG08)的编程特性分析如下: ### 1. 数据类型定义 #### AT9s_SwitchStateBool - **定义**:布尔型开关状态,表示两种状态(如按键/继电器的开/关)。 典型枚举定义: ```c typedef enum { AT9S_SWITCH_OFF = 0, AT9S_SWITCH_ON = 1 } AT9s_SwitchStateBool; ``` 对应二进制状态$0/1$,常用于GPIO输入检测或继电器控制[^1]。 #### AT9s_SwitchStateTri - **定义**:三态开关状态,表示三种状态(如高/低/悬空或开/关/中间位置)。 典型枚举定义: ```c typedef enum { AT9S_SWITCH_OFF = 0, AT9S_SWITCH_MID = 1, AT9S_SWITCH_ON = 2 } AT9s_SwitchStateTri; ``` 常见于多档位开关或需要中间状态的传感器信号处理[^1]。 ### 2. 编程用法 #### 应用场景 - **硬件控制**:用于读取主/从节点按键电路状态(如引用[1]中的LED背景灯光控制)。 - **状态机设计**:在LIN通信控制电路中处理开关状态转换。 - **继电器操作**:控制双胞胎继电器设计电路的吸合/释放逻辑。 #### 示例代码 ```c // 读取布尔型开关状态 AT9s_SwitchStateBool read_switch() { if (GPIO_ReadPin(SWITCH_PIN) == HIGH) return AT9S_SWITCH_ON; else return AT9S_SWITCH_OFF; } // 处理三态开关状态 void handle_tri_state(AT9s_SwitchStateTri state) { switch(state) { case AT9S_SWITCH_OFF: /* 关闭继电器 */ break; case AT9S_SWITCH_MID: /* 中间保持状态 */ break; case AT9S_SWITCH_ON: /* 启动电机 */ break; } } ``` ### 3. 扩展说明 - **内存优化**:在MC9S08SG08等资源有限的芯片中,可使用`uint8_t`类型存储枚举值以节省内存。 - **错误处理**:建议在状态读取函数中添防抖逻辑,避免机械开关的抖动干扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值