Большой Воронежский Форум
Страница 17 из 43
« Первая < 711121314151617 18192021222327 > Последняя »
»Радиолюбитель>PIC контроллеры. Программаторы и первый проект на PIC
petrd 20:04 08.05.2010

Сообщение от SD_Prog:
Да есть уже внете такой проект sova-c60.narod.ru
gsm-c45.narod.ru
Недавно начал заниматься этой темой. Очень интересно. Предлагаю развивать эту тему, либо травить плату, собирать схему, или купить конструктор у Евгения. Пробовать писать код. ДЕМО версию прошивки он уже выложил. Там есть ограничения.

Личное ИМХО. Тема в таком варианте развития вряд ли получит, т.к.:
1. У меня допустим таких телефонов нет, а искать раритет для одного раза не очень тянет. Ну разве что если кто подарит. Опять же, если сегодня найду телефон, а завтра может уже и не найдешь. Опять же прошивка - демо, а исходники? Опять изобретать велосипед?
2. Опять же предложенное направление мало перспективное. Для разработки устройств с GSM каналом выпускаются специально заточенные модули (недавно уже упоминал - например, SIM300 в разных модификациях - http://www.terraelectronica.ru/catal...&Gde=2&PageS=1 и цены не заоблачные) под которые разработчики пердлагают и протоколы и исходные коды и демо-платы. А если все открыто и большинство с этим работает, то и спросить про непонятное можно и поделиться опытом. [Ответ]
Cortetey 22:53 11.05.2010
полностью согласен с petrd насчет сименсов
к сожалению, умерли они((
а из дешевых и ныне выпускаемых только самсунг делает некоторые модели с rs-232 (например, Е1100), но информации по ним, мягко говоря недостаточно [Ответ]
VRTP 20:32 29.05.2010
Парни,срочно нужен камень ATmega8L в сойке,могу поменяться на что то.
Выручайте. [Ответ]
tranzistor 08:32 31.05.2010
Брал месяца полтора назад в Радионе на Чайковского. Вот только не помню - L или нет. Скорее всего обычная. Низковольтная мега - это критично для Вас? [Ответ]
VRTP 18:23 31.05.2010
Спасибо Klepko,выручил!
В Радионе и сейчас есть(были),только в ДИПе. [Ответ]
VRTP 12:00 02.06.2010
Парни,кто собирает и не смог прошить камень для Пик Кит2,оращайтесь-помогу. [Ответ]
petrd 14:23 02.06.2010

Сообщение от VRTP:
Парни,кто собирает и не смог прошить камень для Пик Кит2,оращайтесь-помогу.

Это о чем? Радостью делитесь, что PICKit2 собрали? [Ответ]
VRTP 21:10 02.06.2010

Сообщение от petrd:
Это о чем? Радостью делитесь, что PICKit2 собрали?

Именно
До этого мучался..............всего не перечесть,начиная с поника.Хотя справедливости ради,в каждом софте были свои ++++и свои------.
[Ответ]
moorzik 12:11 16.06.2010
подскажите хотябы где можно посмотреть исходник на mikroc для подключения pic по 1wire нескольких датчиков ds18b20 LCD дисплей [Ответ]
petrd 14:02 16.06.2010

Сообщение от moorzik:
подскажите хотябы где можно посмотреть исходник на mikroc для подключения pic по 1wire нескольких датчиков ds18b20 LCD дисплей

В help и в примерах к MikroC и смотрите. Или в чем-то проблема? [Ответ]
moorzik 06:52 22.06.2010
я вроде все излазил не нашел подключение нескольких датчиков по одной шине. и народ подскажите почему PCF8583 время не идет и вообще оно там как то странно написано [Ответ]
petrd 07:24 22.06.2010

Сообщение от moorzik:
я вроде все излазил не нашел подключение нескольких датчиков по одной шине. и народ подскажите почему PCF8583 время не идет и вообще оно там как то странно написано

Так а сколько датчиков-то надо, если надо два-три и есть свободные ноги контроллера, то вешаете на свободные (так проще), если ног не хватает, то вешаете в параллель, но тогда надо будет в коде работать с серийными номерами датчиков (так сложнее).
А насчет PCF8583, обмен по шине есть? Кварц работает? Что с битом старта? [Ответ]
moorzik 09:43 23.06.2010

Сообщение от petrd:
Так а сколько датчиков-то надо, если надо два-три и есть свободные ноги контроллера, то вешаете на свободные (так проще), если ног не хватает, то вешаете в параллель, но тогда надо будет в коде работать с серийными номерами датчиков (так сложнее).
А насчет PCF8583, обмен по шине есть? Кварц работает? Что с битом старта?

я начинающий поэтому пока учусь на примерах испльзую пример из микрос по pcf мне там не понятно что делать с ногой INT (7) b c ногой А0 (3) может у меня в этом проблемма ? [Ответ]
moorzik 10:17 23.06.2010
чтение


struct TTime {
char year, month, day, hours, minutes, seconds;
} TimeRead;

char yearmod4, byteRead;

void Display_Time() {
char txt[11];
// output values to LCD display
txt[0] = (TimeRead.day / 10) + 48;
txt[1] = (TimeRead.day % 10) + 48;
txt[2] = '/';
txt[3] = (TimeRead.month / 10) + 48;
txt[4] = (TimeRead.month % 10) + 48;
txt[5] = '/';
txt[6] = '2';
txt[7] = (TimeRead.year / 100) + 48;
txt[8] = ((TimeRead.year % 100) / 10) + 48;
txt[9] = (TimeRead.year % 10) + 48;
txt[10] = 0; // null to terminate the string
Lcd_Out(1,7,txt);

txt[0] = (TimeRead.hours / 10) + 48;
txt[1] = (TimeRead.hours % 10) + 48;
txt[2] = ':';
txt[3] = (TimeRead.minutes / 10) + 48;
txt[4] = (TimeRead.minutes % 10) + 48;
txt[5] = ':';
txt[6] = (TimeRead.seconds / 10) + 48;
txt[7] = (TimeRead.seconds % 10) + 48;
txt[8] = 0; // null to terminate the string
Lcd_Out(2,7,txt);
}


void ReadTime() {
char updateYear;

updateYear = 0;

I2C_Start(); // issue start signal
I2C_Wr(0xA0); // address PCF8583
I2C_Wr(2); // first word address
I2C_Repeated_Start(); // issue repeated start signal
I2C_Wr(0xA1); // address PCF8583 for reading R/W=1

byteRead = I2C_Rd(1); // read seconds byte
TimeRead.seconds = (byteRead >> 4)*10 + (byteRead & 0x0F); // transform seconds
while (I2C_Is_Idle() = 0) // this lines are not neccessary in new versions
asm nop; // starting from mikroC 6.0.0.1

byteRead = I2C_Rd(1); // read minutes byte
TimeRead.minutes = (byteRead >> 4)*10 + (byteRead & 0x0F); // transform minutes
while (I2C_Is_Idle() = 0)
asm nop;

byteRead = I2C_Rd(1); // read hours byte
TimeRead.hours = (byteRead >> 4)*10 + (byteRead & 0x0F); // transform hours
while (I2C_Is_Idle() = 0)
asm nop;

byteRead = I2C_Rd(1); // read year/day byte
TimeRead.day = ((byteRead & 0b00110000) >> 4)*10 + (byteRead & 0x0F); // transform day
yearmod4 = (byteRead & 0b11000000) >> 6; // get year mod 4 from RTC
while (I2C_Is_Idle() = 0)
asm nop;

byteRead = I2C_Rd(0); // read weekday/month byte
TimeRead.month = ((byteRead & 0b00010000) >> 4)*10 + (byteRead & 0x0F); // transform month
while (I2C_Is_Idle() = 0)
asm nop;
I2C_Stop();

I2C_Start(); // issue start signal
I2C_Wr(0xA0); // address PCF8583
I2C_Wr(0x10); // first word address
I2C_Repeated_Start(); // issue repeated start signal
I2C_Wr(0xA1); // address PCF8583 for reading R/W=1

byteRead = I2C_Rd(0); // read year
if (yearmod4 != byteRead % 4 ) { // check if year is incremented in RTC
byteRead++; // in this case the new value should be written to RTC RAM at address 16(0x10)
updateYear = 1;
}
TimeRead.year = byteRead;

while (I2C_Is_Idle() = 0)
asm nop;
I2C_Stop();

if (updateYear > 0) {
I2C_Start(); // issue start signal
I2C_Wr(0xA0); // address PCF8530
I2C_Wr(0x10); // start from word at address 16
I2C_Wr(TimeRead.year); // write year to RAM
I2C_Stop(); // issue stop signal
}
}



void MainInit() {
ANSEL = 0;
ANSELH = 0;
Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0);
Lcd_Cmd(LCD_CLEAR);
Lcd_Cmd(LCD_CURSOR_OFF);
LCD_Out(1,1,"Date: / /");
LCD_Out(2,1,"Time: : :");

I2C_Init(100000); // initialize I2C
}



void main() {
MainInit();

while (1) {
ReadTime();
Display_Time();
Delay_ms(1000);
}
}






запись

struct TTime {
char year, month, day, hours, minutes, seconds;
} TimeToWrite;


void main() {
TimeToWrite.year = 7; // 2007 (offset from 2000)
TimeToWrite.month = 12;
TimeToWrite.day = 31;
TimeToWrite.hours = 23;
TimeToWrite.minutes = 59;
TimeToWrite.seconds = 40;

I2C_Init(10000); // initialize full master mode
I2C_Start(); // issue start signal
I2C_Wr(0xA0); // address PCF8583
I2C_Wr(0); // start from word at address 0 (configuration word)
I2C_Wr(0x80); // write 0x80 to config. (pause counter...)
I2C_Wr(0); // write 0 to cents word
I2C_Wr(((TimeToWrite.seconds/10)<<4) + (TimeToWrite.seconds%10)); // write seconds word
I2C_Wr(((TimeToWrite.minutes/10)<<4) + (TimeToWrite.minutes%10)); // write minutes word
I2C_Wr(((TimeToWrite.hours/10)<<4) + (TimeToWrite.hours%10)); // write hours word
I2C_Wr(((TimeToWrite.year%4)<<6) + ((TimeToWrite.day/10)<<4) +(TimeToWrite.day%10));
I2C_Wr(((TimeToWrite.month/10)<<4) + (TimeToWrite.month%10)); // write weekday/month
I2C_Stop(); // issue stop signal

I2C_Start(); // issue start signal
I2C_Wr(0xA0); // address PCF8530
I2C_Wr(0x10); // start from word at address 16
I2C_Wr(TimeToWrite.year); // write year to RAM
I2C_Stop(); // issue stop signal

I2C_Start(); // issue start signal
I2C_Wr(0xA0); // address PCF8530
I2C_Wr(0); // start from word at address 0
I2C_Wr(0); // write 0 to config word (enable counting)
I2C_Stop(); // issue stop signal
}



пожалуйста обьясните вчем моя ошибка? PCF подключена SCL, SDA и все
время идет НАРМАЛЬНО НО через две сикунды тоесть 32, 36, 38, 40 [Ответ]
petrd 13:03 23.06.2010

Сообщение от moorzik:
пожалуйста обьясните вчем моя ошибка? PCF подключена SCL, SDA и все
время идет НАРМАЛЬНО НО через две сикунды тоесть 32, 36, 38, 40

1. Используйте для показа кода теги. Читать невозможно, это не текст.
2. Частота кварца контроллера какая (случайно не 4 МГц?) и какой контроллер, на чем смотрите - железо или Proteus?
3. А две секунды на ЖКИ - соответствуют реальным двум секундам или нет?
4. A0 на землю, INT - никуда, в этом коде он не используется.
5. Код откуда взят? [Ответ]
moorzik 13:11 23.06.2010

Сообщение от petrd:
1. Используйте для показа кода теги. Читать невозможно, это не текст.
2. Частота кварца контроллера какая (случайно не 4 МГц?) и какой контроллер, на чем смотрите - железо или Proteus?
3. А две секунды на ЖКИ - соответствуют реальным двум секундам или нет?
4. A0 на землю, INT - никуда, в этом коде он не используется.

1) 16f887 (pickit demoboard) lcd 2X16 на процессоре кварц не стоит
смотрю на железе
2) секунды соответствуют, временя все соответствует

токое впечатление что или s2 шина тармазит (или как всегда я )

код с примера взят [Ответ]
moorzik 13:49 23.06.2010
как говорится низная брода ни лези в брод.
как всегда сам виноват надыбал подозрительный код и сибе голову сломал и людей заморочал. типерь нашел другой код единственное задержку уменьшил до 500 мс.
вот код опять таки с примера.

char seconds, minutes, hours, day, month, year; // Global date/time variables

// Software I2C connections
sbit Soft_I2C_Scl at RC3_bit;
sbit Soft_I2C_Sda at RC4_bit;
sbit Soft_I2C_Scl_Direction at TRISC3_bit;
sbit Soft_I2C_Sda_Direction at TRISC4_bit;
// End Software I2C connections

// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

//--------------------- Reads time and date information from RTC (PCF8583)
void Read_Time() {

Soft_I2C_Start(); // Issue start signal
Soft_I2C_Write(0xA0); // Address PCF8583, see PCF8583 datasheet
Soft_I2C_Write(2); // Start from address 2
Soft_I2C_Start(); // Issue repeated start signal
Soft_I2C_Write(0xA1); // Address PCF8583 for reading R/W=1

seconds = Soft_I2C_Read(1); // Read seconds byte
minutes = Soft_I2C_Read(1); // Read minutes byte
hours = Soft_I2C_Read(1); // Read hours byte
day = Soft_I2C_Read(1); // Read year/day byte
month = Soft_I2C_Read(0); // Read weekday/month byte
Soft_I2C_Stop(); // Issue stop signal

}

//-------------------- Formats date and time
void Transform_Time() {
seconds = ((seconds & 0xF0) >> 4)*10 + (seconds & 0x0F); // Transform seconds
minutes = ((minutes & 0xF0) >> 4)*10 + (minutes & 0x0F); // Transform months
hours = ((hours & 0xF0) >> 4)*10 + (hours & 0x0F); // Transform hours
year = (day & 0xC0) >> 6; // Transform year
day = ((day & 0x30) >> 4)*10 + (day & 0x0F); // Transform day
month = ((month & 0x10) >> 4)*10 + (month & 0x0F); // Transform month
}

//-------------------- Output values to LCD
void Display_Time() {

Lcd_Chr(1, 6, (day / 10) + 48); // Print tens digit of day variable
Lcd_Chr(1, 7, (day % 10) + 48); // Print oness digit of day variable
Lcd_Chr(1, 9, (month / 10) + 48);
Lcd_Chr(1,10, (month % 10) + 48);
Lcd_Chr(1,15, year + 56); // Print year vaiable + 8 (start from year 2008)

Lcd_Chr(2, 6, (hours / 10) + 48);
Lcd_Chr(2, 7, (hours % 10) + 48);
Lcd_Chr(2, 9, (minutes / 10) + 48);
Lcd_Chr(2,10, (minutes % 10) + 48);
Lcd_Chr(2,12, (seconds / 10) + 48);
Lcd_Chr(2,13, (seconds % 10) + 48);
}


//------------------ Performs project-wide init
void Init_Main() {

TRISB = 0;
PORTB = 0xFF;
TRISB = 0xff;
ANSEL = 0; // Configure AN pins as digital I/O
ANSELH = 0;
Soft_I2C_Init(); // Initialize Soft I2C communication
Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Clear LCD display
Lcd_Cmd(_LCD_CURSOR_OFF); // Turn cursor off

Lcd_Out(1,1,"Date:"); // Prepare and output static text on LCD
Lcd_Chr(1,8,':');
Lcd_Chr(1,11,':');
Lcd_Out(2,1,"Time:");
Lcd_Chr(2,8,':');
Lcd_Chr(2,11,':');
Lcd_Out(1,12,"200");
}

//----------------- Main procedure
void main() {

Delay_ms(2000);

Init_Main(); // Perform initialization

while (1) { // Endless loop
Read_Time(); // Read time from RTC(PCF8583)
Transform_Time(); // Format date and time
Display_Time(); // Prepare and display on LCD

Delay_ms(500); // Wait 1 second
}
}
типерь буду дальше думать.
1) правда есть еще вопрос а как заставить MIKROC pro выводить на LCD дисплей русский текст??
2) подскажите как лучше сделать. Надо подключить шатл к пику используются две ноги ( условно назовем ноги А , Б) смысл такой крутиш влево садятся на землю А; А+Б; Б крутиш вправо садятся Б; А+Б; А вот я и думаю что получается алгоритм если в состоянии покоя на шатле находится на нагах 11 при повороте получается либо 10 в одну сторону либо 01 вдругую подскажите хотябы намеком как придумать данный опрос
[Ответ]
petrd 20:57 23.06.2010

Сообщение от moorzik:
1) 16f887 (pickit demoboard) lcd 2X16 на процессоре кварц не стоит смотрю на железе
2) секунды соответствуют, временя все соответствует
токое впечатление что или s2 шина тармазит (или как всегда я )
код с примера взят

Что-то Вы не договорили. В примерах к компилятору такого кода нет. Нашел его на сайте MikroE. Меня больше интересовали биты конфигурации к этому примеру. Не зря искал и вот почему - в конфигурации исходного проекта установлен HS генератор, а значит этот код без изменений слова конфигурации не будет работать от внутреннего генератора. А значит Вы изменили внешний генератор на внутренний, но в код никаких изменений не внесли, а это значит, что внутренний генератор работает на 4 Мгц (по умолчанию), а программа-то расчитана на 8 Мгц, в результате все задержки увеличились в 2 раза и delay_ms(1000) отсчитывала не одну секунду, а 2 сек. Отсюда и возникла проблема. [Ответ]
petrd 21:13 23.06.2010

Сообщение от moorzik:
как говорится низная брода ни лези в брод.
как всегда сам виноват надыбал подозрительный код и сибе голову сломал и людей заморочал. типерь нашел другой код единственное задержку уменьшил до 500 мс.
вот код опять таки с примера.
......
типерь буду дальше думать.
1) правда есть еще вопрос а как заставить MIKROC pro выводить на LCD дисплей русский текст??
2) подскажите как лучше сделать. Надо подключить шатл к пику используются две ноги ( условно назовем ноги А , Б) смысл такой крутиш влево садятся на землю А; А+Б; Б крутиш вправо садятся Б; А+Б; А вот я и думаю что получается алгоритм если в состоянии покоя на шатле находится на нагах 11 при повороте получается либо 10 в одну сторону либо 01 вдругую подскажите хотябы намеком как придумать данный опрос

1. Код нормальный, больше DS на контроллер читать надо.
2. Софтовый I2C тоже хорошо иметь, но только когда нет аппаратного модуля MSSP.
3. Кому Вы лепите неоформатированный код, неужели трудно теги CODE или PHP вокруг кода вставить?
4. Русский текст, например, так:
Код:
void LCD_Out_Rus(char row, char column, char *text)
{
 const unsigned char russian_HD44780[]={0x41, 0xA0, 0x42, 0xA1, 0xE0, 0x45,
                                        0xA3, 0xA4, 0xA5, 0xA6, 0x4B, 0xA7,
                                        0x4D, 0x48, 0x4F, 0xA8, 0x50, 0x43,
                                        0x54, 0xA9, 0xAA, 0x58, 0xE1, 0xAB,
                                        0xAC, 0xE2, 0xAD, 0xAE, 0x62, 0xAF,
                                        0xB0, 0xB1, 0x61, 0xB2, 0xB3, 0xB4,
                                        0xE3, 0x65, 0xB6, 0xB7, 0xB8, 0xB9,
                                        0xBA, 0xBB, 0xBC, 0xBD, 0x6F, 0xBE,
                                        0x70, 0x63, 0xBF, 0x79, 0xE4, 0x78,
                                        0xE5, 0xC0, 0xC1, 0xE6, 0xC2, 0xC3,
                                        0xC4, 0xC5, 0xC6, 0xC7};

 if (*text)
  {
   if (*text > 191)
    Lcd_Chr(row, column, russian_HD44780[(*text) - 192]);
   else
    Lcd_Chr(row, column, *text);
   }
  else
   return;
 *text++;
 while(*text)
  {
   if (*text > 191)
    Lcd_Chr_Cp(russian_HD44780[(*text) - 192]);
   else
    Lcd_Chr_Cp(*text);
   text++;
  }
}

.....
LCD_Out_Rus(1,1,"ПРИВЕТ");
......
А вот как Ваш шаттл работает из Вашего описания так до конца и не понял.
[Ответ]
moorzik 08:14 24.06.2010

Сообщение от petrd:
Что-то Вы не договорили. В примерах к компилятору такого кода нет. Нашел его на сайте MikroE. Меня больше интересовали биты конфигурации к этому примеру. Не зря искал и вот почему - в конфигурации исходного проекта установлен HS генератор, а значит этот код без изменений слова конфигурации не будет работать от внутреннего генератора. А значит Вы изменили внешний генератор на внутренний, но в код никаких изменений не внесли, а это значит, что внутренний генератор работает на 4 Мгц (по умолчанию), а программа-то расчитана на 8 Мгц, в результате все задержки увеличились в 2 раза и delay_ms(1000) отсчитывала не одну секунду, а 2 сек. Отсюда и возникла проблема.

у меня стоит MIKROC PRO 3.2 пример из нелпа
нет внешний и внутренний гениратор не трогал
как установленно в проект визарде 8 мГц так все и стоит
просто выбран проц и влит исходник из примера
подскажите где скачать учебник хороший по С
Шпака уже читаю! с удовольствием
а про шатл вроде все понятно

вращаем ручку в право получаем код на ногах
10
11
01

вращаем ручку в лево получаем код на ногах
01
11
10 [Ответ]
petrd 08:48 24.06.2010

Сообщение от moorzik:
у меня стоит MIKROC PRO 3.2 пример из нелпа
нет внешний и внутренний гениратор не трогал
как установленно в проект визарде 8 мГц так все и стоит
просто выбран проц и влит исходник из примера
подскажите где скачать учебник хороший по С

1. Ну не нашел я в примерах к MikroC PRO 3.20 (3.80) аппаратного I2C с RTC, тогда покажите полный путь к папке, где он лежит.
2. Ищите в гугле Керниган и Ричи "Язык С". [Ответ]
moorzik 09:15 24.06.2010
прикрепляю путь
Изображения
[Ответ]
petrd 09:37 24.06.2010

Сообщение от moorzik:
прикрепляю путь

Это все понятно, это софтовый I2C, меня интересует откуда вот этот код взят http://bvf.ru/forum/showpost.php?p=1...&postcount=494, с него же все началось? [Ответ]
moorzik 09:43 24.06.2010

Сообщение от petrd:
Это все понятно, это софтовый I2C, меня интересует откуда вот этот код взят http://bvf.ru/forum/showpost.php?p=1...&postcount=494, с него же все началось?

Код:
http://www.mikroe.com/app/webroot/forum/viewtopic.php?f=10&t=5974
[Ответ]
petrd 10:12 24.06.2010
Так и я про это, там hex под 8 МГц причем должен внешний кварц, после запуска срабатывает Fail-Safe Clock Monitor (т.к. в слове конфигурации установлен бит FCMEN) и т.к. нет тактов от внешнего HS генератора, то ядро переключается на внутренний RC генератор, а он по умолчанию работает на 4 МГц. А что дальше уже говорил. Вроде все. [Ответ]
moorzik 10:26 24.06.2010

Сообщение от petrd:
Так и я про это, там hex под 8 МГц причем должен внешний кварц, после запуска срабатывает Fail-Safe Clock Monitor (т.к. в слове конфигурации установлен бит FCMEN) и т.к. нет тактов от внешнего HS генератора, то ядро переключается на внутренний RC генератор, а он по умолчанию работает на 4 МГц. А что дальше уже говорил. Вроде все.

Огромное СПАСИБО
Подскажите насколь мГц лучше кварц поставить на 16F887
а каким образом происходит выбрка нескольких устройств по С2 шине? [Ответ]
petrd 10:44 24.06.2010

Сообщение от moorzik:
Подскажите насколь лучше кварц поставить на 16F887

Смотря для чего, если надо работать с точными интервалами (частотомер, RS232 и т.п.), то надо кварц ставить или если надо чтобы программа работала быстрее чем 2MIPS (тактовая 8 МГц) максимум до 5MIPS (тактовая 20 МГц). Всяко с кварцем стабильнее будет, но появляются лишние компоненты. [Ответ]
BOURNE 22:10 24.07.2010
Всем привет!
Только что авторизовался на вашем форуме, понравилась тема про пик. Сам сейчас в вузе начал изучать их, но там только теория без серьезных практических изысканий ,а хочу по-копать контроллеры глубже Как только придет мне заказанный 18ф4550 , начну в железе мигать диодиками и писать всякое на дисплее ,т.е. стартану с простого Но мне очень интересно, как, например, управлять светодиодиками с компа через интерфейс юсб, который поддерживается этим пиком. Ведь нужно написать драйвер какой-нибудь, и сам хотел бы состряпать простенькую оболочку, из которой можно управлять этими светодиодиками. отсюда у меня следующие вопросы:
1) хотел бы понять сам принцип такого управления, как драйвер должен взаимодействовать с этой оболочкой?
2) в чем писать оболочку? я в универе сталкивался с билдер с++ . Он подойдет?
3) как написать драйвер для девайса на пик
Пока все. Буду благодарен за любые вспомогательные советы и предложения
[Ответ]
petrd 09:37 25.07.2010

Сообщение от BOURNE:
Всем привет!
Только что авторизовался на вашем форуме, понравилась тема про пик. Сам сейчас в вузе начал изучать их, но там только теория без серьезных практических изысканий ,а хочу по-копать контроллеры глубже Как только придет мне заказанный 18ф4550 , начну в железе мигать диодиками и писать всякое на дисплее ,т.е. стартану с простого Но мне очень интересно, как, например, управлять светодиодиками с компа через интерфейс юсб, который поддерживается этим пиком. Ведь нужно написать драйвер какой-нибудь, и сам хотел бы состряпать простенькую оболочку, из которой можно управлять этими светодиодиками. отсюда у меня следующие вопросы:
1) хотел бы понять сам принцип такого управления, как драйвер должен взаимодействовать с этой оболочкой?
2) в чем писать оболочку? я в универе сталкивался с билдер с++ . Он подойдет?
3) как написать драйвер для девайса на пик
Пока все. Буду благодарен за любые вспомогательные советы и предложения

Ну Вы к вопросу подходите по-студенчески фундаментально. Проще надо, во-первых, времени у Вас как у студента на фундаментальность однозначно не хватит, во-вторых, многие вопросы за Вас давно решены, в-третьих, так как многое уже решено, то и делается все проще, волшебные слова CDC и HID. Почитайте вот это, станет понятней:
http://microchip.com.ru/Support/USB%20apps.html
http://www.gamma.spb.ru/articles.php?i=29
http://www.remexpert.com/ipb/topic1953.html
http://www.pickit2.ru/doku.php/проек...основе.pickit2
http://www.pickit2.ru/doku.php/проек...основе.pickit2 [Ответ]
BOURNE 10:31 25.07.2010
Спасибо за ссылки Даже более, чем достаточно, по-крайней мере, сейчас. Видел по одной ссылке написание оболочки в вижуал с++. Так вот, какую программу легче использовать для данной цели : визуал или билдер? [Ответ]
Страница 17 из 43
« Первая < 711121314151617 18192021222327 > Последняя »
Вверх