Форум Микро-Чип

Форум Микро-Чип (http://www.microchip.su/index.php)
-   Продукция MICROCHIP (http://www.microchip.su/forumdisplay.php?f=6)
-   -   подскажите по Си для (http://www.microchip.su/showthread.php?t=2030)

швондер 06.12.2007 19:52

подскажите по Си для
 
есть проект готовый под протеус на СИ, пытался в нем разобраться
вроде все понятно , но чего не могу понять из программы
к каким пинам микроконтроллера подсоеденяются
светодиоды, подскажитее...
программка для тахометра на трех светодиодах
которыепоказывают допустимые обороты двигателя
Код:

////////////////////////////////////////////////////////////////////////////////
// SCROD.C
//
////////////////////////////////////////////////////////////////////////////////
#include "C:\Program Files\Labcenter Electronics\Proteus 7 Professional\BIN\Work\SkrodM\scrod.h"
/* Определения */
#define ON 0 // Активный уровень включения LED - 0
#define OFF 1
#define YPorog 1500 // 2000 об/мин - порог включения желтого
#define GPorog 600 // 5000 об/мин - порог включения зеленого
#define RPorog 300 // 10000 об/мин - порог включения красного
int16 TxCount,Tacho,YPorog,GPorog,RPorog;
int8 PulseCount, Timer100us=198;
#int_timer0 // Обработка прерывания от TMR0 каждые 100uS
void Timer0_ISR()
{
set_timer0(Timer100us);
++TxCount;
}
#int_ext // Обработка прерывания от сигнала
void Int0_ISR()
{
++PulseCount;
if(PulseCount==10)
{
Tacho=TxCount;
TxCount=0;
PulseCount=0;
set_timer0(Timer100us);
enable_interrupts(int_timer0);
}
}
void LedTest(VOID) // Проверка LED на исправность
{
YLed = ON; // Включем все
GLed = ON;
RLed = ON;
delay_ms (1000); // пауза 1сек
YLed = OFF; // Погасим желтый
delay_ms (1000);
GLed = OFF; // Погасим эелёный
delay_ms (1000);
RLed = OFF; // Погасим красный
}
void main()
{
/* Инициализация железа*/
disable_interrupts(global);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
set_tris_a (0x00); // PORTA - Все выход
output_a (0xFF); // гасим все LED
set_tris_B (0xFF); // PORTB - Все вход
LedTest (); // Проверим LED
PulseCount =0;
enable_interrupts(int_ext);
enable_interrupts(global);
 
/* Основной цикл */
WHILE (1)
{
if (Tacho > YPorog) // Обороты < порога желтого?
{
RLed = OFF;
GLed = OFF;
YLed = OFF;
}
if (Tacho <=YPorog & Tacho > GPorog) // Обороты меньше зеленого?
{
YLed = ON;
GLed = OFF;
RLed = OFF;
}
if (Tacho <=GPorog & Tacho > RPorog) // Обороты меньше красного?
{
YLed = OFF;
GLed = ON;
RLed = OFF;
}
if (Tacho <= RPorog) // Обороты больше красного?
{
YLed = OFF;
GLed = OFF;
RLed = ON;
}
 
}
}


Forger 06.12.2007 20:09

Re: подскажите по Си для
 
Цитата:

Сообщение от швондер (Сообщение 18123)
есть проект готовый под протеус на СИ, пытался в нем разобраться
вроде все понятно , но чего не могу понять из программы
к каким пинам микроконтроллера подсоеденяются
светодиоды, подскажитее...

Здесь не вся программа

ramonchik 06.12.2007 20:14

Re: подскажите по Си для
 
Цитата:

Сообщение от швондер (Сообщение 18123)
к каким пинам микроконтроллера подсоеденяются
светодиоды, подскажитее...

посмотрите в "C:\Program Files\Labcenter Electronics\Proteus 7 Professional\BIN\Work\SkrodM\scrod.h"

швондер 06.12.2007 21:07

Re: подскажите по Си для
 
ясно тогда
проект не мой, я его с казуса когда то по случаю скачал
в настщий момент уже не помню ссылки :-(
сейчас просто хотел в ознакомительных целях изучить данный исходник
по случаю того что скачал с инета компилятор mikroC.
так пологаю в проекте данные пины описываются ?
в каком файле это происходит ?
имеются :
scrod.cof
scrod.esym
scrod.sta
и другие, всего 19 файлов с прошивкой


Часовой пояс GMT +3, время: 23:36.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot