⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 count.c

📁 基于AVR mega16的电梯控制程序。现在几经能正常使用。
💻 C
字号:
#define _COUNT_
#include <iom16.h>
#include "main.h"
#include "key.h"
#include "count.h"

/***********************************************************************************
 * 功能:仪表常数转换,将一个double型常数转换为两个整数
 * 输入:流量计上的仪表常数
 * 输出:经过转换的仪表常数
 * 仪表常数:例如仪表常数为107.512,代表转107.512圈为1升;第一部分由256除107.512取整
 *           得到,第二部分由256除以107.512的小数部分再乘以256得到的整数部分
 * ********************************************************************************/


//脉冲数转换为抽酒数量
void PulseToAmount(long pulse)
{
 have_drawed = (double)(pulse/meter);
}

//抽酒数量转换为脉冲数
void AmountToPulse(double amount)
{
 want_to_draw_pulse = (long)(amount * meter);
}

//将已抽酒数量转换为char型数组并通过LCD显示出来。注意只取小数点后1位
void AmountToLcd(unsigned long n)
{
    unsigned char i;
    //Disp_Buff
    for(i = 0; i < 10; i++)
    {
        if(n / 10)
        {
          Disp_Buff[i] = n % 10 ;
          n = n / 10;
        }
        else
        {
          Disp_Buff[i] = n % 10 ;
          break;
        }
    }

    for(;i > 0; i --)
    {
        Lcd_write_char(Disp_Buff[i] + '0');
    }
        Lcd_write_char(Disp_Buff[0] + '0');
}

//PD3接流量计,来个脉冲pulse加1。
//#pragma interrupt_handler int1_isr:3
#pragma vector=INT1_vect
__interrupt void INT1_vect_isr(void)
{

  //want_to_draw_int = (long)(want_to_draw*256);
  //MCUCR = 0x3B;//省电模式,int1上升沿触发中断,int0低电平触发中断
  //GICR  &= 0x7F;//关中断1
  pulse += 1;
  //GICR  |= 0x80;//开中断1
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -