Описание: ошибка |
Поиск в теме | Версия для печати |
1_ulyanovsk |
Отправлено: 27 Января, 2010 - 20:28:13
|
Маршал
Сообщений всего: 126
Дата рег-ции: Сент. 2009
|
Ребят, вечер добрый. Уже долго мучаю ЕЕPROM может кто заметит ошибку ? Функции ЗАПИСИ и ЧТЕНИЯ взяты из датиша на mega8535 (его и использую) единственное что изменено - записываю в память не unsigned char ucData , а unsigned int ucData.
На порт А навешаны светодиоды , но они не горят. Така как бесконечный цикл отсутствует, то зависает именно на ЗАПИСИ/ЧТЕНИИ в память и дальше не идет.
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 8000000UL
unsigned int S=1;
unsigned int F=3;
unsigned int A;
void EEPROM_write(unsigned int uiAddress, unsigned int ucData)
{
/* Wait for completion of previous write */
while(EECR & (1<<EEWE))
;
/* Set up Address and Data Registers */
EEAR = uiAddress;
EEDR = ucData;
/* Write logical one to EEMWE */
EECR |= (1<<EEMWE);
/* Start eeprom write by setting EEWE */
EECR |= (1<<EEWE);
}
unsigned int EEPROM_read(unsigned int uiAddress)
{
/* Wait for completion of previous write */
while(EECR & (1<<EEWE))
;
/* Set up Address Register */
EEAR = uiAddress;
/* Start eeprom read by writing EERE */
EECR |= (1<<EERE);
/* Return data from Data Register */
return EEDR;
}
int main(void)
{
DDRA = 0xff;
DDRC = 0x00;
PORTC= 0b01;
sei();
EEPROM_write(0x1E, F);
A=EEPROM_read(0x1E);
if (A>2) S=A;
if (S==1) PORTA=0x0, PORTA |= 1<<0;
if (S==2) PORTA=0x0, PORTA |= 1<<1;
if (S==3) PORTA=0x0, PORTA |= 1<<2;
if (S==4) PORTA=0x0, PORTA |= 1<<3;
if (S==5) PORTA=0x0, PORTA |= 1<<4;
if (S==6) PORTA=0x0, PORTA |= 1<<5;
if (S>6) PORTA=0xff;
} |
|
|
Никита |
Отправлено: 30 Января, 2010 - 12:43:45
|
Главнокомандующий
Сообщений всего: 203
Дата рег-ции: Нояб. 2009
|
lamakazzz пишет:Если не знаешь, то ставить "галочки" не надо, по умолчанию всё работает отлично.
попробуй залить самую простую прошивку.
кстати, лампочка должна не мигать, а гореть (зеленая), когда подаешь питание на программатор. Красная включается, когда начинаешь прошивать МК, и погаснет при завершении прошивки.
Напиши, в чем пишешь саму программу и через что ты заливаешь прошивку.
Пишу в Nortenpad(WinAVR)както так, а прошиваю в PonyProg
(Добавление)
питание через блак питания от3-12вольт 400мА стабильный, на прогр. даю 6вольт, лампачка power горит а когда начинаю прошивать она мигает 5сек. то ярко горит то тускло.Я магу выслать фото только дайте емаил а то в форум ограничение стоит до 200кб. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (16): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец |
« Программирование микроконтроллеров » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|