pupist 发表于 2013-3-2 22:38:12

LGT8F08A sop8 PB2 IO翻转不起作用 请教这个端口有什么特殊么?

本帖最后由 pupist 于 2013-3-2 22:39 编辑

我用下面的代码测试LGT8F08A SOP8封装的端口翻转

PIN1 2 3 6 7都成功了
只有PIN4 PB2不能翻转 是常低的哪位大牛能提示一下这个端口有什么特殊么?


nclude <iom164pv.h>
#include "iolgt8f0xa.h"
#include <macros.h>


void port_init(void)
{
PORTA = 0x00;
DDRA= 0xFF;
PORTB = 0x00;
DDRB= 0xFF;
PORTC = 0x00;
DDRC= 0xFF;
PORTD = 0x00;
DDRD= 0xFF;
}

//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
//CLI(); //disable all interrupts
port_init();
/*
MCUCR= 0x00;
EMCUCR = 0x00;
//GIMSK= 0x00;
TIMSK= 0x00; //timer interrupt sources
ETIMSK=0x00;
GICR= 0x00;
PCMSK0=0x00;
PCMSK1=0x00;
SEI(); //re-enable interrupts
//all peripherals are now initialized
*/
}
void delay_1us(void)               //1us延时函数
{
    asm("nop");
}

void delay_nus(unsigned int n)       //N us延时函数
{
    unsigned int i=0;
    for (i=0;i<n;i++)
      delay_1us();
}
void delay_1ms(void)               //1ms延时函数
{
    unsigned int i;
    for (i=0;i<1140;i++);
}

void delay_nms(unsigned int n)       //N ms延时函数
{
    unsigned int i=0;
    for (i=0;i<n;i++)
      delay_1ms();
}
//
void main(void)
{
init_devices();
//insert your functional code here...
while(1)
{
PORTA = 0;
PORTB = 0;
PORTC = 0;
delay_nms(500);
PORTA = 0xFF;
PORTB = 0xFF;
PORTC = 0xFF;
delay_nms(500);
}

sballbobo 发表于 2013-6-23 05:02:26

我今天第一次用LGT,也发现IO口的很多奇怪现像,还在研究中.是打算用08A做量产产品的,希望这个问题不要解决太久.

sballbobo 发表于 2013-7-6 06:11:04

为什么你的问题也没人来回答?我现在用08A-sop8做方案了,程序功能已经写到90%,准备用于量产了,但还有一些小问题没解决到,可以搜我的帖子看看.但帖出来总是没人来帮忙解决.
如果要细看手册才能解决的话,我会晕死,那么多页的一本手册,是不可能全部细读的,我在手册中相关部份暂时找不到答案,也许是我也不够细心?

你的问题,转用shoot_123网友的话(手册中我看了,也有说到):PC6没输出是因为PC6与SWD复用,默认是SWD,所以当使用PC6作输出时要关闭SWD口。
但这是PC6,与你的PB2不同.我刚才看了手册关于PB2复用的引脚,暂时没看出原因.

jianghu-00091 发表于 2013-7-23 16:56:29

本帖最后由 jianghu-00091 于 2013-7-23 16:58 编辑

8脚的管脚是几个PAD绑在一起的 所以你不能同时使用几个管脚的功能, 请选择某一个管脚的功能使用,其他不用的管脚请设为输入,以防止相互间的影响.
页: [1]
查看完整版本: LGT8F08A sop8 PB2 IO翻转不起作用 请教这个端口有什么特殊么?