查看: 1885|回复: 0

【GoRK3288】8.完结篇 - 根据CPU温度控制风扇转速GO!GO!GO!!

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-9-25 09:08:02 | 显示全部楼层 |阅读模式
    分享到:
    目前只封装了这几个,按理说还应该有I2C、SPI等,实在没有时间一点一点去折腾了,赶紧结一下吧。
        本来没有这篇的,在官网论坛看到网友madman写的这个控制风扇的例子,感觉很好,所以转过来作为一个参考。
    再次感谢madman!!!

    以下为原文:
    package main
        import (
        "fmt"
        "time"
        "github.com/tjCFeng/GoRK3288/RK3288"
    )
       
    func main() {
        defer RK3288.FreeRK3288()
        PWM1, _ := RK3288.CreatePWM(RK3288.PWM_1)
        PWM1.SetInactivePolarity(RK3288.Negative)
        PWM1.SetPERIOD(50000)
        for{
            time.Sleep(time.Second * 1)
            _, Data, _, _ := RK3288.ITSADC().GetData()
                        var adc_date = RK3288.ITSADC().GetTemperature(Data)
            fmt.Println("Temperature:",adc_date)
            fmt.Println(&quoteriod:",50000)
            PWM1.Stop()
       
            if adc_date <= 40{
                PWM1.SetDUTY(50000)
                fmt.Println("Duty:",50000)
            }else if adc_date >= 40 || adc_date <= 60{
                PWM1.SetDUTY(50000-(uint32)(adc_date) * 766)     
                fmt.Println("Duty:",(50000-(uint32)(adc_date) * 766))
            }else if adc_date >= 60{
                PWM1.SetDUTY(0)
                fmt.Println("Duty:",0)
            }
       
            PWM1.SetCNT(0)
            PWM1.Start()
        }
    }
    只是修改了下句式,PWM1.SetInactivePolarity(RK3288.Positive),这个改了之后是将pwm是释放之后端口高低电平的控制,不会影响到duty的控制的的占空比高低,不过手册里本身duty就是控制低电平的。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 01:35 , Processed in 0.104868 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.