C8051F530
- Сообщения: 10
- Зарегистрирован: Вт авг 02, 2011 13:49:30
Всем доброго времени суток. Столкнулся с маленькой проблемой, надо на C8051F530 оживить жки TIC 33(на базе ML1001).Полазил по топикам нашел описание инициализации тика под авр, к сожалению(или я читать не умею, или просто не нахожу то что надо) даташит на 1001 не дает толковой информации об инициализации. Если кто сталкивался или кто может нашаманить или просто скинуть толковый даташит на 1001 буду весьма признателен.
- Реклама
На чём писать-то собираешься? На АСМе или на СИ..
P.S. Вот это читал? http://mu-tron.com.hk/PDF/ML1001.pdf
И вот тут в самом конце ещё есть: http://electronix.ru/forum/lofiversion/ ... 53778.html
P.S. Вот это читал? http://mu-tron.com.hk/PDF/ML1001.pdf
И вот тут в самом конце ещё есть: http://electronix.ru/forum/lofiversion/ ... 53778.html
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- Сообщения: 10
- Зарегистрирован: Вт авг 02, 2011 13:49:30
писать буду на С. точнее блок с инициализацией SPI уже есть, вроде даже работает( по крайней мере с MISO и SCK что то генерит). А вот инициалка самого 1001 и по какому приниципу знаки делаются, тут без понятия. по второй ссылке лазал, но там опять же таки на авр( кстати тут где на форуме эта тема намного лучше освещена) а насчёт второй ссылки очень часто натыкался, даже русский вариант есть, но опять же таки: просто какие то общие выкладки, меня интересует обьявление через #define, составление знака и загрузка его в память 1001, т.е. начальный блок инициализации жки, что бы потом отпавравляя по SPI какие либо знаки он понимал что я к нему обращаюсь.
З.Ы. Первый раз просто в эту тему сунулся, поэтому пока ещё ни в зуб ногой(
З.Ы. Первый раз просто в эту тему сунулся, поэтому пока ещё ни в зуб ногой(
Мя не стал вчитываться в описание на индикатор, но если там сдвиговые регистры, а как понял, по сбросу у индикатора все сегменты выключены..
Попробуй заслать туда 00000001, потом 00000010 и так далее.. Посмотришь, какие сегменты включатся.. Надо описание читать..
Попробуй заслать туда 00000001, потом 00000010 и так далее.. Посмотришь, какие сегменты включатся.. Надо описание читать..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- Сообщения: 10
- Зарегистрирован: Вт авг 02, 2011 13:49:30
тишина...не откликается. вот весь код, передача даных взята с примеров си лаба.
#include <C8051F520.h> // SFR declarations
#include <STDDEF.H>
#include <STDIO.H>
#include <compiler_defs.h>
//-----------------------------------------------------------------------------
// Global Constants
//-----------------------------------------------------------------------------
#define SYSCLK 24500000 // Internal oscillator frequency in Hz
#define SPI_CLOCK 500000 // Maximum SPI clock
// The SPI clock is a maximum of 500 kHz
// when this example is used with
// the SPI0_Slave code example.
#define SPI_WRITE 0x04 // Send a byte from the Master to the
// Slave
unsigned char SPI_Data;
unsigned char Command = 0x00;
//Function Prototypes
void SPI_Init (void);
void Port_IO_Init (void);
void SPI_Byte_Write (void);
void Delay (void);
void Init_Device(void);
void main (void)
{
unsigned char test_value = 0x05;
Init_Device ();
while (1)
{
EA=1;
SPI_Data = test_value;
// Write a value
SPI_Byte_Write ();
while (!NSSMD0); // Wait until the Write transfer has
// finished
}
}
void Init_Device (void)
{
Port_IO_Init ();
SPI_Init ();
}
void Port_IO_Init (void)
{ // P0.0 - SCK (SPI0), Push-Pull, Digital
// P0.1 - MISO (SPI0), Open-Drain, Digital
// P0.2 - MOSI (SPI0), Push-Pull, Digital
// P0.3 - NSS (SPI0), Push-Pull, Digital
// P0.4 - Unassigned, Open-Drain, Digital
// P0.5 - Unassigned, Open-Drain, Digital
// P0.6 - Unassigned, Open-Drain, Digital
// P0.7 - Unassigned, Open-Drain, Digital
// P1.0 - Unassigned, Open-Drain, Digital
// P1.1 - Unassigned, Open-Drain, Digital
// P1.2 - Unassigned, Push-Pull, Digital
// P1.3 - Unassigned, Open-Drain, Digital
// P1.4 - Unassigned, Open-Drain, Digital
// P1.5 - Unassigned, Open-Drain, Digital
// P1.6 - Unassigned, Push-Pull, Digital
// P1.7 - Unassigned, Open-Drain, Digital
P0MDOUT = 0x0D;
P1MDOUT = 0x44;
XBR0 = 0x02;
XBR1 = 0x40;
//P1MASK = 0x42;
}
void SPI_Init (void)
{
SPI0CFG = 0x40;
SPI0CN = 0x05;
}
void SPI_Byte_Write (void)
{
while (!NSSMD0); // Wait until the SPI is free, in case
// it's already busy
NSSMD0 = 0;
Command = SPI_WRITE;
SPI0DAT = Command;
}
#include <C8051F520.h> // SFR declarations
#include <STDDEF.H>
#include <STDIO.H>
#include <compiler_defs.h>
//-----------------------------------------------------------------------------
// Global Constants
//-----------------------------------------------------------------------------
#define SYSCLK 24500000 // Internal oscillator frequency in Hz
#define SPI_CLOCK 500000 // Maximum SPI clock
// The SPI clock is a maximum of 500 kHz
// when this example is used with
// the SPI0_Slave code example.
#define SPI_WRITE 0x04 // Send a byte from the Master to the
// Slave
unsigned char SPI_Data;
unsigned char Command = 0x00;
//Function Prototypes
void SPI_Init (void);
void Port_IO_Init (void);
void SPI_Byte_Write (void);
void Delay (void);
void Init_Device(void);
void main (void)
{
unsigned char test_value = 0x05;
Init_Device ();
while (1)
{
EA=1;
SPI_Data = test_value;
// Write a value
SPI_Byte_Write ();
while (!NSSMD0); // Wait until the Write transfer has
// finished
}
}
void Init_Device (void)
{
Port_IO_Init ();
SPI_Init ();
}
void Port_IO_Init (void)
{ // P0.0 - SCK (SPI0), Push-Pull, Digital
// P0.1 - MISO (SPI0), Open-Drain, Digital
// P0.2 - MOSI (SPI0), Push-Pull, Digital
// P0.3 - NSS (SPI0), Push-Pull, Digital
// P0.4 - Unassigned, Open-Drain, Digital
// P0.5 - Unassigned, Open-Drain, Digital
// P0.6 - Unassigned, Open-Drain, Digital
// P0.7 - Unassigned, Open-Drain, Digital
// P1.0 - Unassigned, Open-Drain, Digital
// P1.1 - Unassigned, Open-Drain, Digital
// P1.2 - Unassigned, Push-Pull, Digital
// P1.3 - Unassigned, Open-Drain, Digital
// P1.4 - Unassigned, Open-Drain, Digital
// P1.5 - Unassigned, Open-Drain, Digital
// P1.6 - Unassigned, Push-Pull, Digital
// P1.7 - Unassigned, Open-Drain, Digital
P0MDOUT = 0x0D;
P1MDOUT = 0x44;
XBR0 = 0x02;
XBR1 = 0x40;
//P1MASK = 0x42;
}
void SPI_Init (void)
{
SPI0CFG = 0x40;
SPI0CN = 0x05;
}
void SPI_Byte_Write (void)
{
while (!NSSMD0); // Wait until the SPI is free, in case
// it's already busy
NSSMD0 = 0;
Command = SPI_WRITE;
SPI0DAT = Command;
}
- Реклама
Мя в СИ совсем не силён, вот тут парнишка тоже 340-ю с индикатором в СИ пробует подружить: http://radiokot.ru/forum/viewtopic.php?f=20&t=51599
Может LeftRadio зайдёт, что нить посоветует..
Может LeftRadio зайдёт, что нить посоветует..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]


