
| Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
PIC контроллеры. Программаторы и первый проект на PIC
|
||
| Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
![]() |
|
|
Опции темы |
|
|
#422 |
|
Форумец
Сообщений: 11
Регистрация: 08.08.2009
Возраст: 41
|
|
|
|
|
|
#423 |
|
Форумец
|
|
|
|
|
|
#424 |
|
Форумец
Сообщений: 82
Регистрация: 05.02.2008
|
PIC16F676
Вот такая проблема:
программа работает в MPLAB SIM, я это вижу по состоянию регистров и EEPROM. В PROTEUS происходит следующее: как только я его "включаю" то сразу взводится EECON1:WRERR (ошибка записи в EEPROM), и по адресам куда в дальнейшем должно писаться появляется ерунда. При этом сама программа еще не запускалась. В "железе" похоже происходит то же самое. |
|
|
|
|
#425 | |
|
Форумец
|
Цитата:
|
|
|
|
|
|
#426 |
|
Форумец
Сообщений: 11
Регистрация: 08.08.2009
Возраст: 41
|
Проблема решена
PWM работает в протеусе (мож кому пригодитса )void main() { unsigned char pwm ; TRISC = 0 ; PORTC = 0 ; PR2 = 0b01111100 ; CCP1CON = 0b00001100 ; CCP2CON = 0b00111100 ; for(..) { for(pwm = 0 ; pwm < 128 ; pwm++) { CCPR1L = pwm ; CCPR2L = 128 - pwm ; T2CON = 0b00000101 ; Delay_ms(10) ; } for(pwm = 127 ; pwm > 0 ; pwm--) { CCPR1L = pwm ; CCPR2L = 128 - pwm ; T2CON = 0b00000101 ; Delay_ms(10) ; } } } |
|
|
|
|
#427 |
|
Форумец
Сообщений: 1
Регистрация: 18.01.2010
|
Здравствуйте!
Проблема в следующем: нужно принять по USART 30 байт, сохранить их в EEPROM и передать обратно (для сравнения). Камень - pic16f628a, среда microC. Схема такая же как в файле справке (прикрепить картинку?) Код:
unsigned short i, j;
Usart_Init(2400);
i = 0;
while (1)
{
if (Usart_Data_Ready())
{
j = Usart_Read();
Eeprom_Write(i, j);
Delay_ms(20);
i++;
}
if (i > 29)
{
for (i = 0; i < 30; i++)
{
j = Eeprom_Read(i);
Usart_Write(j);
}
i = 0;
}
}
|
|
|
|
|
#428 | |
|
Форумец
|
Цитата:
2. Вариантов несколько. Первый - принимаемые данные складывать в массив, а после приема всех 30 байт записать их в EEPROM. Второй - использовать аппаратное управление, в частности задействовать CTS/RTS. P.S. mikroC mikroC mikroC mikroC mikroC |
|
|
|
|
|
#429 |
|
Форумец
|
PICKit2 & AVR
Pickit2 научили шить AVR.
Первоисточник здесь - http://pickit2avrisp.wordpress.com/ И на microchip.su обсуждают. Сам не пробовал, но обязательно попробую. |
|
|
|
|
#430 |
|
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 57
|
скажите где посмотреть процедуру написания проги на с для работы ацп и индикатора 16х2
Последний раз редактировалось viktor110668; 07.03.2010 в 14:18. |
|
|
|
|
#431 | |
|
Форумец
|
Цитата:
Код:
/*
* Project name:
ADC_on_LCD (Displaying ADC result on LCD)
* Copyright:
(c) MikroElektronika, 2005-2008.
* Description:
This code demonstrates how to use library function ADC_read, and library
procedures and functions for LCD display (4 bit interface).
* Test configuration:
MCU: PIC16F887
Dev.Board: EasyPIC5
Oscillator: HS, 08.0000 MHz
Ext. Modules: LCD
SW: mikroC v8.0
* NOTES:
None.
*/
unsigned char ch;
unsigned int adc_rd;
char *text;
long tlong;
void main() {
INTCON = 0; // disable all interrupts
ANSEL = 0x04; // Configure AN2 pin as analog input
TRISA = 0x04;
ANSELH = 0; // Configure other AN pins as digital I/O
Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0); // Lcd_Init_EP5, see Autocomplete
LCD_Cmd(LCD_CURSOR_OFF); // send command to LCD (cursor off)
LCD_Cmd(LCD_CLEAR); // send command to LCD (clear LCD)
text = "mikroElektronika"; // assign text to string
LCD_Out(1,1,text); // print string a on LCD, 1st row, 1st column
text = "LCD example"; // assign text to string
LCD_Out(2,1,text); // print string a on LCD, 2nd row, 1st column
ADCON1 = 0x82; // configure VDD as Vref, and analog channels
TRISA = 0xFF; // designate PORTA as input
Delay_ms(2000);
text = "voltage:"; // assign text to string
while (1) {
adc_rd = ADC_read(2); // get ADC value from 2nd channel
LCD_Out(2,1,text); // print string a on LCD, 2nd row, 1st column
tlong = (long)adc_rd * 5000; // covert adc reading to milivolts
tlong = tlong / 1023; // 0..1023 -> 0-5000mV
ch = tlong / 1000; // extract volts digit
LCD_Chr(2,9,48+ch); // write ASCII digit at 2nd row, 9th column
LCD_Chr_CP('.');
ch = (tlong / 100) % 10; // extract 0.1 volts digit
LCD_Chr_CP(48+ch); // write ASCII digit at cursor point
ch = (tlong / 10) % 10; // extract 0.01 volts digit
LCD_Chr_CP(48+ch); // write ASCII digit at cursor point
ch = tlong % 10; // extract 0.001 volts digit
LCD_Chr_CP(48+ch); // write ASCII digit at cursor point
LCD_Chr_CP('V');
Delay_ms(1);
}
}//~!
|
|
|
|
|
|
#432 |
|
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 57
|
уууура у меня получилось, я забыл написать что для авр микроС
но я перенес куски кода в авр и поменял заглавные буквы и усе заработало , огромнейшее спасибо , для учебной практики в самый раз Последний раз редактировалось viktor110668; 08.03.2010 в 17:14. |
|
|
|
|
#433 |
|
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 57
|
подскажите пжлста код работы mikroC AVR ацп и графического дисплея 12864 уж сильно хочется вывести синусоиду и поучится выводить символы и разные заставки.
Последний раз редактировалось viktor110668; 09.03.2010 в 07:11. |
|
|
|
|
#434 | |
|
Форумец
|
Цитата:
|
|
|
|
|
|
#435 | |
|
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 57
|
Цитата:
индикатором 16х2 я уже освоил математические методы вычисления значений, и сделал вольтметр омметр со звуковой индикацией и цифровым отображением на дисплее 16х2, я сам автоэлектрик и мне нужен такой приборчик. теперь я хочу своими руками и мозгами достичь других результатов, я тут увидел диагностический приборчик для машин и решил соорудить подобие его но на графическом дисплее в котором будет осциллограф до 200 кгц(достаточно) волтметр омметр и диагностика систем отечественных авто, схема уже есть , отработана система протокола обмена с авто по кл адаптеру ну тут я размахнулся ( и зайца можно научить курить) вот я и хочу на конкретных примерах сделать себе помощника(прибор) кстати я диагностический приборчик сам сделал он на 16х2 и неудобен что читаемость плохая когда нужно посмотреть сразу три режима работы двигателя, еще я сам сделал 4 канальный осциллограф на атмега16 и компьютером через юсб теперь на моём буке есть осцилл. потихоньку развиваемся с вашей и божьей помощью. спасибо тем кто помогает. |
|
|
|
|
|
#436 |
|
Форумец
|
AVR & RTOS OSA
Для тех кто работает с AVR - стараниями tester'a RTOS OSA портирована под 8-ми разрядные AVR (IAR и WinAVR) - http://wiki.pic24.ru/doku.php/osa/ref/download/intro
|
|
|
|
|
#437 |
|
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 57
|
посмотриче файлик , я тут написал програмку для графического лсд линию выводит на экран а не так как надо.
|
|
|
|
|
#438 |
|
Форумец
|
|
|
|
|
|
#439 |
|
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 57
|
я расписал строчки в .с файле
|
|
|
|
|
#440 |
|
Форумец
|
Так и тут ничего не понятно.
Код:
unsigned short i;
unsigned int buf[500];
void main() {
Glcd_Init(); // ????????????? GLCD
Glcd_Fill(0x00); // Clear GLCD
for (;;){ //while(1) {
buf[i] = ADC_Read(3); //чтение с ацп и запись в буфер
for(i=1;i<10;i++); // формирование графика
Delay_100ms();//задержка
for (i=1; i<buf[i]+1; i++) //?????? ??????
{
Glcd_Line(i=1,buf[i],i+90,buf[i+1],1); //?вывод графика на дисплей
};
Glcd_Fill(0); //сброс индикатора
};
}
Код:
for(i=1;i<10;i++); // формирование графика Код:
for (i=1; i<buf[i]+1; i++)
Glcd_Line(i=1,buf[i],i+90,buf[i+1],1);
|
|
|
|
|
#441 |
|
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 57
|
i<buf[i]+1 это я из буфера данные выкладываю на график
Glcd_Line(i=1...здесь выводит на дисплей только я сейчас поставил i<1 ничего не изменилось напишите как надо написать функцию прорисовки графика ато у меня никаких нарабоок нет вот сам шишки и набиваю хотябы примерчик какой посмотреть Последний раз редактировалось viktor110668; 15.03.2010 в 14:53. |
|
|
|
|
#442 |
|
Ганзовец
Сообщений: 767
Регистрация: 22.11.2006
|
Здравствуйте!
Задумал я делать HID устройство для компьютера. Чую много времени пройдет пока я его реализую, но не в этом дело. Возник у меня вопрос а как подбирать микросхему для своих задач? Есть ли у кого-нибудь опыт работы с USB устройствами? С уважением, seysen Последний раз редактировалось seysen; 27.03.2010 в 15:19. |
|
|
|
|
#443 | |
|
Форумец
|
Цитата:
1. Если брать PIC, то это однозначно с модулем USB (PIC18, PIC24, PIC32) Low и Full. 2. Можно брать обычный AVR, но тогда будет Low Speed USB (12 МГц), а AVR с модулем USB будет и Low и Full. Никто Вам точно не скажет как выбирать, можно высказать только свои личные предпочтения, а выбирать все равно Вам. |
|
|
|
|
|
#445 | |
|
Форумец
|
Цитата:
|
|
|
|
|
|
#446 |
|
Ганзовец
Сообщений: 767
Регистрация: 22.11.2006
|
Спасибо. Только нашел
![]() http://catalog.gaw.ru/index.php?page=components_list если кому вдруг потребуется |
|
|
|
|
#447 | |
|
Форумец
Сообщений: 48
Регистрация: 08.10.2004
Возраст: 48
|
Цитата:
|
|
|
|
|
|
#448 |
|
Ганзовец
Сообщений: 767
Регистрация: 22.11.2006
|
|
|
|
|
|
#449 |
|
Форумец
|
Так еще и не определились? Для PIC здесь можно для знакомства посмотреть http://pickit2.ru/doku.php/проекты:all
|
|
|